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