Win11下的VMware虚拟机卡顿问题解决

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需要启用某些安全措施,例如:

  1. 额外的上下文切换会增加CPU的开销,进而影响虚拟机的性能。
  2. 限制某些指令的使用可能影响应用程序的执行效率。
  3. 实施缓存隔离以保护虚拟机之间的数据,这会影响内存访问速度。

这些措施能保护系统安全,但也可能降低性能。用户可根据具体情况在安全和性能之间权衡。

进入虚拟机设置,在选项页面的高级条目里,可以启用或关闭侧通道缓解。

禁用CPU的能效核

在BIOS中可以禁用CPU的能效核,仅使用性能核。这样便不会再出现大小核的调度问题。

希望以上信息能够帮助到使用VMware的你。


Profile picture

一个充满好奇心的冒险家,喜爱科技与艺术。用文字记录生活的点滴,分享观察与思考、经验与感悟。无惧艰难险阻,幸福就在你我身边。