Когда моя виртуальная машина HyperV (под управлением Ubuntu 20.04) находится под нагрузкой на моем HP Proliant DL380 G6 (под управлением Windows Server 2016), используются только 6 из 12 физических ядер, то есть используется только 1 из 2 процессоров. Ниже приведен снимок экрана моего диспетчера задач.
Это подтверждено МОТ (ниже), поскольку только процессор 2 переходит в состояние питания P1.
Моя виртуальная машина HyperV - единственная виртуальная машина на моем компьютере, и я подготовил ее с помощью 24 виртуальных процесса (по 1 на каждое логическое ядро, поскольку у моего сервера 12 физических ядер и 24 логических ядра). Ниже приведен снимок экрана с настройками процессора для моей виртуальной машины HyperV.
Я хочу, чтобы моя виртуальная машина HyperV использовала все 12 физических ядер. Как я могу этого добиться и почему виртуальная машина не использует все доступные ей ядра?
Обратите внимание, что когда я запускаю многопоточную рабочую нагрузку на хосте, все 12 физических ядер используются должным образом (как показано ниже).
Я вспомнил, что на моей ВМ была включена «Динамическая память», поэтому я попытался запустить ВМ с отключенной «Динамической памятью». После стресс-тестирования ВМ заработали все 12 физических ядер. Рад, что кто-нибудь расширит этот ответ, объяснив, почему это решило мою проблему.