Узкие места процессора на хостах Hyper-V: как найти и устранить неполадки

Опубликовано: 17 Апреля, 2023
Узкие места процессора на хостах Hyper-V: как найти и устранить неполадки

Когда дело доходит до устранения неполадок с производительностью в среде Hyper-V, иногда возникает соблазн пропустить шаги, связанные с процессором. В конце концов, проблемы с производительностью обычно связаны с более ограниченными ресурсами, такими как IOPS хранилища, память или пропускная способность сети. Именно поэтому важно убедиться, что центральный процессор системы не является источником узких мест процессора. Современные процессоры настолько эффективны, что их иногда упускают из виду при устранении проблем с производительностью.

Устранение узких мест процессора: начните со счетчиков производительности хоста

Когда дело доходит до собственных инструментов Windows, монитор производительности является предпочтительным инструментом для устранения проблем с производительностью. Если вы подозреваете, что проблемы с производительностью могут быть связаны с узкими местами процессора, вызванными нехваткой ресурсов ЦП, есть три счетчика системного монитора, которые вы должны отслеживать на узле Hyper-V:

• Использование логического процессора Логический процессор гипервизора Hyper-V (*) процент от общего времени выполнения
• Использование виртуального процессора Виртуальный процессор гипервизора Hyper-V (*) процент от общего времени выполнения
• Использование корневого виртуального процессора Корневой виртуальный процессор гипервизора Hyper-V (*) процент общего времени выполнения

Каждый из этих трех счетчиков смотрит на процент времени, в течение которого связанный объект процессора используется. Однако, чтобы убедиться, что вы действительно понимаете, что эти счетчики показывают вам, я хочу воспользоваться секундой и просмотреть некоторую терминологию Microsoft.

Ключевая терминология

Три перечисленных выше счетчика системного монитора относятся к логическим процессорам, виртуальным процессорам и корневым виртуальным процессорам. На языке Microsoft логический процессор — это «процессор, который обрабатывает один поток выполнения». Имейте в виду, что хотя логический процессор может быть ядром ЦП, количество логических процессоров в системе иногда может превышать количество ядер ЦП из-за технологий, которые позволяют ядру обрабатывать несколько потоков выполнения.

Виртуальные процессоры — это тип виртуального оборудования. Когда мы создаем виртуальную машину Hyper-V, эта виртуальная машина поставляется с различными компонентами виртуального оборудования. Например, виртуальная машина обычно получает виртуальный жесткий диск. Я уверен, вы знаете, что виртуальный жесткий диск — это не то же самое, что физический жесткий диск. Физический жесткий диск — это материальный физический аппаратный компонент, способный хранить данные. Виртуальный жесткий диск на самом деле не что иное, как файл, предназначенный для эмуляции физической памяти. Таким образом, виртуальный жесткий диск находится в физическом хранилище и занимает часть доступного физического дискового пространства, но обычно не занимает все основное физическое хранилище. Виртуальные процессоры работают примерно так же. Виртуальный процессор — это не физический процессор, а скорее виртуальное представление физического процессора. Виртуальный процессор использует физический процессор за кулисами, но один физический процессор обычно поддерживает несколько виртуальных процессоров.

Наконец, корневой виртуальный процессор — это виртуальный процессор, используемый хостом Hyper-V. Корневой виртуальный процессор не обслуживает рабочие нагрузки виртуальной машины.

Что искать

Итак, теперь, когда я объяснил разницу между логическими, виртуальными и корневыми виртуальными процессорами, давайте взглянем на соответствующие счетчики производительности. Как отмечалось ранее, вы захотите наблюдать за этими счетчиками на хосте Hyper-V, а не внутри виртуальной машины.

Метод, который вы будете использовать для добавления счетчиков производительности в системный монитор, немного различается в зависимости от используемой версии Windows, но вы можете увидеть пример добавления счетчика на рисунке ниже. Вы заметите, что в списке счетчиков, приведенном ранее в этой статье, есть звездочка. Эти звездочки означают, что вы должны контролировать все экземпляры выбранного объекта.

Изображение 14547
Первое, что вы захотите проверить, — это счетчик времени выполнения Hyper-V Hypervisor Logical Processor (_Total)centTotal, который вы можете увидеть на рисунке ниже. В столбце Экземпляр указано, что это значение _Total (или совокупное).

Изображение 14548
Счетчик логического процессора гипервизора Hyper-V (_Total)centreTotal Run Time должен быть меньше 90 процентов, и это значение должно оставаться ниже 90 процентов (хотя отдельные всплески выше 90 процентов могут быть в порядке). Более высокие значения указывают на то, что в системе недостаточно ресурсов ЦП и требуется либо обновление ЦП, либо запуск меньшего количества виртуальных машин. Это, безусловно, может указывать на проблемы с производительностью, вызванные узкими местами процессора.

Затем взгляните на счетчик времени выполнения Hyper-V Hypervisor Virtual ProcessorpercentTotal. Если вы посмотрите на столбец «Экземпляр» на рисунке ниже, вы увидите, что для каждой работающей виртуальной машины существует экземпляр этого счетчика. Таким образом, счетчик проверяет рабочую нагрузку виртуального процессора для каждой виртуальной машины.

Изображение 14549
В идеале каждый экземпляр этого счетчика должен быть меньше 90 процентов. Если значение счетчика выше 90 процентов, вам нужно будет проверить, не являются ли повышенными значениями только некоторые виртуальные машины или все ваши виртуальные машины потребляют более 90 процентов времени виртуального процессора.

Если только некоторые виртуальные машины показывают значения выше 90 процентов, это указывает на то, что некоторым виртуальным машинам не хватает ресурсов ЦП. Вы можете решить проблему, добавив дополнительные виртуальные процессоры к виртуальной машине, но часто повышенная нагрузка на процессор является признаком другой проблемы. Например, нехватка памяти может привести к чрезмерному подкачиванию, что иногда может увеличить загрузку ЦП. В таких ситуациях вам потребуется выполнить дополнительный мониторинг производительности, чтобы определить, почему виртуальная машина нагружает виртуальный ЦП.

Если, с другой стороны, все виртуальные машины потребляют чрезмерные ресурсы виртуального ЦП, но счетчик логического процессора гипервизора Hyper-V (_Total)percentTotal Run Time находится в приемлемом диапазоне, вы можете решить проблему, добавив дополнительные виртуальных процессоров к виртуальным машинам.

Наконец, проверьте счетчик корневого виртуального процессора гипервизора Hyper-Vпроцент от общего времени выполнения. Если это значение превышает 90 процентов для всех корневых виртуальных процессоров, вероятно, узел перегружен. Если значение превышает 90 процентов хотя бы для одного экземпляра, но не для всех экземпляров корневого виртуального процессора, вам, вероятно, потребуется включить VMQ на сетевых адаптерах. Чтобы выяснить, так ли это, посмотрите на счетчики процессора(x)процент времени прерывания и процессора(x)процент времени DPX. Если объединенные значения этих двух счетчиков равны значению счетчика «Корневой виртуальный процессор процент от общего времени выполнения», то это указывает на то, что, вероятно, проблема связана с отключением VMQ на сетевых адаптерах.

Счетчики упрощают обнаружение узких мест процессора

Как видите, диагностировать проблемы с производительностью процессора, вызванные узкими местами процессора на хостах Hyper-V, относительно легко. Три счетчика производительности, перечисленные ранее в этой статье, обычно сообщают вам, испытывает ли узел узкое место, связанное с процессором.