Назад | Перейти на главную страницу

Hyper-V: виртуальные машины не используют всю мощность процессора, доступную серверу?

У меня относительно мощный двухпроцессорный (12 ядер) сервер Бег MS Windows Server 2016 с участием Hyper-V установлены. Я создал кучу виртуальных машин, и ни одна из них не требовательна к ресурсам, за исключением одной виртуальной машины, которую я хочу использовать для обработки канала видеонаблюдения. Итак, я дал этой виртуальной машине 8 vCPU в настройках:

но даже несмотря на то, что загрузка ЦП в этой виртуальной машине достигает 70%, на узле отображается почти нулевое использование ЦП. Я подумал: «Возможно, Windows не сообщает об использовании ЦП виртуальными машинами на хосте» - хотя для меня это не совсем понятно - но проблема в том, что ВМ не хватает производительности. Он пропускает кадры и т. Д. И для трех камер, которые у меня есть, я уверен, что у базового хост-сервера более чем достаточно вычислительной мощности.

Итак, вопрос - я что-то делаю не так? Как я могу сказать конкретной виртуальной машине, что она «забирает столько процессора, сколько нужно от хоста»?

У вас есть 24 логических процессора на хосте, и вы назначаете 8 процессоров этой виртуальной машине, что составляет 33% от общих ресурсов хоста (это то, что Hyper-V показывает в диалоговом окне конфигурации).

Я рекомендую вам назначить этой виртуальной машине 24 виртуальных ЦП (что означает «использовать столько ЦП, сколько необходимо с хоста»), но вам может потребоваться уменьшить значение «Резерв виртуальной машины», если вы зарезервировали ЦП на других ВМ, иначе они выиграют не смогу начать.

Дополнительно вы можете прочитать Измерение производительности Hyper-V / процессора, чтобы узнать о счетчиках производительности, которые можно использовать:

[...] Чтобы измерить общую загрузку физического процессора операционной системы хоста и всех гостевых операционных систем, используйте счетчик монитора производительности «\ Hyper-V Hypervisor Logical Processor (_Total)% Total Run Time». Этот счетчик измеряет общий процент времени, затрачиваемого процессором, работающим как с основной, так и со всеми гостевыми операционными системами. [...]

Взгляни на Обнаружение узких мест в виртуализированной среде тоже, если вам когда-нибудь понадобится обнаружить узкие места

В диспетчере задач хоста вы видите потребление ЦП управляющей ОС, а не реальную загрузку ЦП хоста. Управляющая ОС - это специальная виртуальная машина, которая работает поверх гипервизора (как и другие виртуальные машины) и подключается к физической консоли хоста. Чтобы увидеть реальное потребление ЦП, используйте PerfMon. Видеть https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/role/hyper-v-server/detecting-virtualized-environment-bottlenecks#processor-bottlenecks для счетчиков.