目录
- 一、总结在前面(节约时间就只看这里)
- 0 环境说明
- 1 遇到的问题:
- 2 问题的原因:
- 3 解决办法:
- 4 实验验证:
- 5 关于虚拟机内核数量设置
- 6 关于强行指定Vm能用的CPU内核
- 二、管理员启动,实验对比
- 实验1:1*8核CPU、非管理员运行
- 实验2:1*8核CPU、管理员运行
- 实验3:1*16核CPU、管理员运行
- 实验4:1*32核CPU、管理员运行
- 三、虚拟机数量设置,实验对比
- 实验1:1*8核CPU、管理员运行
- 实验2:2*4核CPU、管理员运行
- 实验3:8*1核CPU、管理员运行
- 四、.vmx固定可用CPU,实验对比
- 实验1:固定使用前8核、非管理员运行
- 实验2:固定使用前16核、非管理员运行
一、总结在前面(节约时间就只看这里)
0 环境说明
VMware | 16.2.3 |
---|---|
主机系统 | win11 |
虚拟机系统 | ubuntu18.04 |
CPU | Intel i9-14900HX(8大核16小核) |
内存 | 32G |
1 遇到的问题:
在使用 英特尔14代CPU、VMware 安装 ubuntu,编译linux内核和安卓系统时:
- Ubuntu 命令行输入卡顿
- linux 内核编译很慢很慢
- 使用win任务管理器查看 VM软件的CPU使用率,只有百分之30左右。
2 问题的原因:
目前的理解是 因为我的电脑CPU是大小核,8大核16小核,VMware没能合理调度大小核。
3 解决办法:
使用了这位大佬的方法:https://blog.csdn.net/weixin_45971758/article/details/141476998
简单粗暴:管理员运行VMware
据说VMware17已经优化了这个问题,能够合理调度大小核,后面可以试试。
4 实验验证:
为了验证,做了几组对比实验,以管理员和非管理员两种方式运行VMware,以及给ubuntu虚拟机分配不同的内核数,对比实验:
- 非管理员运行VMware,虚拟机内核数设置 1\8,实验结果:泰山派RK3566 linux 内核编译用时 6m32s
- 管理员运行VMware,虚拟机内核数设置 1*8,实验结果:泰山派RK3566 linux 内核编译用时 2m35s
- 管理员运行VMware,虚拟机内核数设置 1*16,实验结果:泰山派RK3566 linux 内核编译用时 1m52s
- 管理员运行VMware,虚拟机内核数设置 1*32,实验结果:泰山派RK3566 linux 内核编译用时 1m30s
管理员运行VMware | 虚拟机内核数 | 内核编译时间 | CPU使用率 | |
---|---|---|---|---|
实验1 | 否 | 1*8 | 6m32s | 30% |
实验2 | 是 | 1*8 | 2m35s | 46% |
实验3 | 是 | 1*16 | 1m52s | 83% |
实验4 | 是 | 1*32 | 1m30s | 100% |
想看实验结果图,可以看后面小节,图展示了实验中的CPU总利用率、CPU各核利用率。
5 关于虚拟机内核数量设置
一直好奇虚拟机这个CPU设置里这两个到底该咋设置。
做了实验对比,分别配置为1*8,2*4,8*1,编译Linux内核的时间几乎一致。
总结:咋设置都行,只看最后的总数。
6 关于强行指定Vm能用的CPU内核
另一个解决办法是强行指定VMware能够使用的CPU编号,通过修改VM的.vmx文件来指定虚拟机可用的CPU内核为全大核或全小核,这样就避免了大小核调度。
实验验证:修改.vmx 让虚拟机只能用前8个大核,内核编译时间为3m16s,不如直接管理员启动(2m35s)。
总结:该方式不如直接管理员启动。 没啥用,但是做了实验,还是写出来。
二、管理员启动,实验对比
实验1:1*8核CPU、非管理员运行
实验2:1*8核CPU、管理员运行
实验3:1*16核CPU、管理员运行
实验4:1*32核CPU、管理员运行
三、虚拟机数量设置,实验对比
实验1:1*8核CPU、管理员运行
同上节,就不重复贴图了。
实验2:2*4核CPU、管理员运行
实验3:8*1核CPU、管理员运行
四、.vmx固定可用CPU,实验对比
实验1:固定使用前8核、非管理员运行
实验2:固定使用前16核、非管理员运行