VMware Workstation是一款优秀的虚拟化软件,我用它管理着多个操作系统,方便测试和开发任务。
虚拟机的系统卡死
买来新电脑后,为了给软件搭建测试环境,我使用VMware创建了一台虚拟机,运行Win11。
安装系统的过程很顺利,但是使用阶段遇到了问题。启动客户机进入桌面后,就出现鼠标指针卡顿、响应迟滞的情况,然后没过多久,客户机系统就彻底失去响应了。此时客户机没法正常关闭,只能从VMware的界面下达关机指令,相当于给客户机拔电源。再次启动,还是一样的状况,这样的虚拟机根本没法使用。
运行环境
主机的配置:
- 处理器: i7-12700K
- 内存: 16 GB
- 硬盘: NVMe SSD
- 操作系统: Windows 11 Pro, 64-bit
- VMware版本: Workstation 17 Pro (17.5.2)
客户机的配置:
- 处理器内核数: 4
- 内存: 4 GB
- 硬盘: 64 GB
- 操作系统: Windows 11 Pro, 64-bit
客户机的虚拟硬件资源符合了Windows 11的最低要求。推测问题可能来自某种软件设置不当。
一番观察之后,有了解决办法——
解决办法
办法很简单,让VMware以管理员权限运行。
原因分析
问题出在Win11系统对CPU内核的调度上。
英特尔从第12代(Alder Lake)酷睿处理器起采用异构混合架构,体现为性能核(Performance Core)与能效核(Efficiency core)。在这种架构中,P-Core(即所谓的大核)通过高频率与超线程承担重负载任务;E-Core(即所谓的小核)主要负责轻负载任务,以及多线程性能与协同能力。这样设计可以平衡处理器的性能和功耗。
而当虚拟机卡死的时候,在主机的任务管理器里可以观察到,分配给虚拟机的4个内核全部是小核,且都处于高负载状态。如此不合理的内核分配,导致虚拟机运行出现问题。
以管理员权限运行时,VMware就可以执行合理的CPU内核调度策略。
缓解卡顿的其他办法
如果主机使用第12代以后的Intel处理器,那么提升权限运行VMware应该能解决问题。要是还没有解决,你可以看看如下办法。
关闭Hyper-V
Hyper-V是微软的硬件虚拟化技术。许多第三方虚拟化软件(如VMware)无法与Hyper-V协同工作。VMware Workstation的安装向导也会提醒用户关闭Hyper-V功能。这里可以查看微软的详细说明。
以管理员身份启动终端命令行,执行对应的命令,可以关闭或开启Hyper-V功能。
- 关闭Hyper-V
bcdedit /set hypervisorlaunchtype off
- 开启Hyper-V
bcdedit /set hypervisorlaunchtype auto
调整虚拟机设置
尝试给虚拟机分配更多的CPU核心数或内存。
在虚拟机设置里,选择合适的处理器配置,例如启用或禁用虚拟化引擎
中的某些选项。
重新安装VMware Tools
VMware Tools是VMware虚拟机的一款实用工具。如果客户机是克隆或是移动而来,那么VMware Tools可能没有正确安装或版本不合适。可尝试重新安装VMware Tools以解决问题。
禁用侧通道缓解
一般情况,在虚拟化环境中,为了防止侧通道攻击(如Meltdown和Spectre漏洞),VMware需要启用某些安全措施,例如:
- 额外的上下文切换会增加CPU的开销,进而影响虚拟机的性能。
- 限制某些指令的使用可能影响应用程序的执行效率。
- 实施缓存隔离以保护虚拟机之间的数据,这会影响内存访问速度。
这些措施能保护系统安全,但也可能降低性能。用户可根据具体情况在安全和性能之间权衡。
进入虚拟机设置
,在选项
页面的高级
条目里,可以启用或关闭侧通道缓解。
禁用CPU的能效核
在BIOS中可以禁用CPU的能效核,仅使用性能核。这样便不会再出现大小核的调度问题。
希望以上信息能够帮助到使用VMware的你。