После установки VMware Workstations на десктопе с Windows 10 или 11, можно столкнуться с крайне низкой производительностью и нестабильной работы гостевых Windows ОС в виртуальных машинах. Что интересно, виртуальные машины с Windows 10/11 обычно работают удовлетворительно, но ВМ с гостевыми Windows Server 2019/2022 сильно тормозят при любых операциях. Простая установка гостевой Windows Server в ВМ может занимать несколько часов.
Проблемы с низкой производительностью гостевых Windows в VMware Workstation могут быть вызваны несколькими факторами.
Для анализа плохой производительности виртуальной машины в среде VMware нужно сначала изучить файл vmware.log, который хранится в каталоге ВМ.
В первую очередь можно обратить внимание на такие строки в логе ВМ:
2024-11-15T04:25:38.999Z In(05) vmx MsgHint: msg.loader.mitigations.wsAndFusion 2024-11-15T04:25:38.999Z In(05)+ vmx You are running this virtual machine with side channel mitigations enabled. Side channel mitigations provide enhanced security but also lower performance. 2024-11-15T04:25:38.999Z In(05)+ vmx 2024-11-15T04:25:38.999Z In(05)+ vmx To disable mitigations, change the side channel mitigations setting in the advanced panel of the virtual machine settings. Refer to VMware KB article 79832 at https://kb.vmware.com/s/article/79832 for more details.
Это указывает, что для ВМ включена защита от атак класса side channel (типовые уязвимости этого класса это Spectre и Meltdown), которая ограничивают доступ к защищенной памяти ядра (хоста) из сторонних процессов (в том числе из виртуальных машин). Защита Side Channel mitigation включена по умолчанию для всех ВМ на хостах Windows с включенной функцией Virtualization Based Security (VBS). Отключить эту защиту можно в графическом интерфейсе VMware Workstation (свойства ВМ -> Options -> Advanced -> включить опцию Disable side channel mitigations for Hyper-V enabled hosts) или в VMX конфигурационном файле ВМ, добавив параметр:
ulm.disableMitigations="TRUE"
Если это не исправило проблему плохой производительности виртуальной машины, обратите внимание на другую строку в vmware.log:
2024-11-15T04:25:38.999Z In(05) vmx Monitor Mode: ULM
Это указывает на то, что VMware Workstation запущен в режиме User Level Mode (ULM). Режим ULM указывает что ВМ в гипервизоре запускаются в пользовательском режиме, а не режиме ядра. При таком режиме запуска ВМ на VMware Workstations производительность ОС в виртуальной машина будет сильно деградировать, и почти при любых действиях сильно тормозить. Если на хосте Windows установлены компоненты гипервизора Hyper-V, VMware workstation автоматически будет запускать ВМ в режиме ULM.
В этом случае решить проблему поможет только отключение компонентов виртуализации Hyper-V в хостовой ОС. Это позволить компоненту Virtual Machine Monitor (VMM) напрямую обращаться к набору инструкции виртуализации физического процессора, минуя дополнительной слой Windows Hypervisor Platform API
Проверьте, что на хосте разрешено запускать компоненты Hyper-V:
BCDEdit /enum| select-string "hypervisorlaunchtype"
Строка
hypervisorlaunchtype auto
указывает, что загрузчику Windows разрешено запускать компоненты платформы виртуализации при загрузке.
Чтобы запретить запуск компонентов Hyper-V при загрузке, выполните команду:
bcdedit /set hypervisorlaunchtype off
Перезагрузите компьютер.
Перезагрузите компьютер и проверьте, улучшилась ли производительность ВМ с Windows Server в VMware.
- Виртуальные машины Hyper-V
- Подсистему WSL2
- Windows Sandbox
- Credential Guard и Device Guard
WSL2 is not supported with your current machine configuration. Please enable the "Virtual Machine Platform" optional component and ensure virtualization is enabled in the BIOS. Enable "Virtual Machine Platform" by running: wsl.exe --install --no-distribution Error code: Wsl/Service/CreateInstance/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
Чтобы вернуть возможность запуска компонентов Hyper-V, выполните команду:
bcdedit /set hypervisorlaunchtype auto
Также в некоторых случаях улучшить производительность ВМ может помочь отключение изоляции ядра в настройках Windows (Windows Security -> Device Security -> Core Isolation details -> Memory Integrity). Конечно, это снижает защиту Windows.
Большинство современных процессоров поддерживают режим Power Throttling. Идея которого в том, что ОС для фоновых процессов может ограничивать использование CPU (переводить в фоновый режим) для экономии энергии и увеличения времени автономной работы. Режиме Power Throttling может быть причиной медленной работы процессов VMware на компьютерах с CPU Intel 12, 13, 14 поколений на компьютерах с Windows 11 24H2.
Чтобы запретить Windows самостоятельно ограничивать использование CPU через механизм Power Throttling для основного процесса VMware Workstation (используется для запуска ВМ), выполните команду:
powercfg /powerthrottling disable /path “C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe”
Проверьте, что процесс
vmware-vmx.exe
был добавлен в список исключений.
powercfg /powerthrottling list
Для указанных процессов Windows не будет пытаться управлять электропитанием. В этом случае нагрузки VMware Workstation будут всегда выполняться в режиме максимальной производительности.