Меню

Hyper v счетчики производительности



Мониторинг CPU хоста Hyper-V

Мониторинг CPU хоста Hyper-V задача достаточно актуальная, особенно сейчас, в эпоху виртуализации всего и вся .

В статье я сделаю небольшой обзор групп счетчиков производительности CPU, которые созданы специально для мониторинга ЦП в виртуальных средах (все группы имеют префикс Hyper-V Hypervisor …).

Если вам интересны счетчики производительности Windows, рекомендую обратиться к основной статье тематики — Счетчики производительности.

Мониторинг CPU хоста Hyper-V

Актуальные (2008-2016) на сегодняшний день серверные операционные системы Windows изобилуют счетчиками производительности — отдельные группы счетчиков есть как для каждой роли, так и для целых продуктов (например Exchange). Различные вариации счетчиков есть и для отдельных компонентов системы — например для мониторинга показателей CPU существуют целых две группы с разными наборами (Счетчики производительности процессора), при анализе которых, к тому же, всплывают и некоторые нюансы (Изменения счетчиков производительности CPU).

Во-первых, стандартные счетчики групп Процессор (Processor) и Сведения о процессоре (Processor Information) вам не помогут в принципе, потому что они отображают потребление ресурсов CPU только процессами корневой (хостовой) системой. То есть те ресурсы ЦП, которые потребляют гостевые операционные системы (проще говоря сами виртуалки), не будут отражены в показателях. Это действительно проблема, поскольку очень часто стоит элементарная задача узнать сколько ресурсов съедают все виртуалки враз.

Косвенно задача решается суммированием загрузки ЦП всех виртуалок в пересчете на то количество виртуальных процессоров, которые им выделены. Дело это, мягко говоря, неблагодарное.

Однако удобное решение есть. Для роли Hyper-V добавляются несколько новых групп счетчиков CPU:

  • Hyper-V Hypervisor Logical Processor — Логический процессор низкоуровневой оболочки Hyper-V
  • Hyper-V Hypervisor Root Virtual Processor — Корневой виртуальный процессор низкоуровневой оболочки Hyper-V
  • Hyper-V Hypervisor Virtual Processor — Виртуальный процессор низкоуровневой оболочки Hyper-V

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

Hyper-V Hypervisor Logical Processor

По большому счету виртуальные машины не волнует (если честно, то не всегда) ресурсы каких ядер или даже процессоров для них используются, им больше важна сама возможность их своевременного получения. Чтобы абстрагировать виртуальную среду от реального оборудования, между физическими и виртуальными процессорами создана логическая прослойка. Этой прослойкой и управляет гипервизор, запрашивая ресурсы реального ЦП и предоставляя их виртуальным процессорам. Как раз для мониторинга этой логической прослойки ЦП и создана группа счетчиков Hyper-V Hypervisor Logical Processor. Каждый логический процессор соответствует ядру/потоку реального процессора.

Вот и получается, что для отслеживания реальной загрузки ЦП мы должны обращаться к показателям загрузки логических процессоров, но не к чему-либо другому. Конкретно для этого нам подойдет счетчик Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time (зеленая линия):

Красная линия на графике — это счетчик Processor Information(_Total)\% Processor Time. Как вы видите, его показания абсолютно бесполезны и не отражают реальной загрузки сервера. Будьте внимательны.

Hyper-V Hypervisor Root Virtual Processor

Переходим к полностью виртуальному представлению, ведь группа счетчиков Hyper-V Hypervisor Root Virtual Processor отвечает за мониторинг показателей производительности ЦП корневого раздела. Корневой раздел — это как раз та хостовая ОС, на которой вы и разворачиваете виртуальные машины.

Но почему бы не отслеживать производительность хоста через известные нам группы счетчиков Processor и Processor Information? В принципе можно, но все-таки правильнее это делать через Hyper-V Hypervisor Root Virtual Processor. Объясняю почему: суть гипервизора в том, что он предоставляет равноправный доступ к ресурсам как хостовому разделу, так и гостевым. То есть ресурсы для виртуальных машин выделяет не хостовый раздел, а именно гипервизор. Это хорошо видно на иллюстрации с официального ресурса 1 :

Такие вот тонкости.

Hyper-V Hypervisor Virtual Processor

В данной группе счетчиков отображается каждый виртуальный процессор (с принадлежностью к ВМ) каждой виртуальной машины на вашем сервере Hyper-V. Виртуальный процессор в данном случае — это эквивалентная одному процессорному ядру (или потоку — при использовании гипертридинга или его аналогов) вычислительная мощность.

Читайте также:  Google analytics счетчик скачиваний

Чтобы лучше было понятно дальнейший ход мыслей, хочу привести пример: имеем сервер с одним ЦП, у которого 8 потоков. На этом сервере крутятся 3 виртуальные машины и у каждой из них по 4 виртуальных процессора. Учитывая тот факт, что 1 виртуальный процессор = 1 ядру/потоку реального ЦП, то виртуалки по суммарной мощности вылезают в 1,5 раза из мощности ЦП хоста. Тем не менее, вы запросто можете назначить каждой виртуалке хоть 8 vCPU, чтобы общее количество виртуальных процессоров составило 24 штуки.

Я на своем домашнем Core i7 могу создать с десяток виртуалок, назначить каждой по несколько vCPU так, чтобы их общее количество явно выходило за пределы 8 потоков реального процессора и вот что получится:

Как вы видите, список виртуальных процессоров достаточно внушительный, но реальная загрузка хостового процессора выглядит смешной, поскольку мои виртуальные машины особо не нагружены:

Отслеживать показатели производительности ЦП виртуальных машин через счетчики хоста в принципе удобно в некоторых случаях, но не всегда.

Вывод

Каким же образом гипервизор распределяет нагрузку между ядрами? Есть несколько ключевых моментов:

1. Дело в том, что для каждой конкретной виртуальной машины он не резервирует процессорную мощность, а высвобождает имеющиеся ресурсы только при необходимости;

2. Виртуальный процессор никоим образом не привязан к реальному физическому ядру. Из этого следует, что каждый виртуальный процессор может «размываться» по нескольким физическим ядрам, взяв от каждого какую-либо величину;

3. Также надо отметить, что на данный момент нет никакого способа узнать какой процент мощности от того или иного реального ядра отнимает каждый виртуальный процессор.

Серьезные проблемы у вас начнутся в том случае, если все виртуалки начнут отжирать максимально выделенную им процессорную мощность. По факту ЦП каждой ВМ будет нагружен на 10-15%, а хост ляжет с 95-98% загрузкой ЦП.

История из личного опыта: подобная ситуация у меня как-то была при тестировании виртуального сервера 1С+СУБД и терминального сервера. Все они располагались на одном и том же хосте виртуализации и им было выделено максимальное количество vCPU. Когда на терминалке запустили с десяток толстых клиентов 1С и сымитировали закрытие месяца, то терминалка показывала примерно 60% загрузки, 1С+СУБД всего лишь 40%, но хост лег наглухо — загрузка ЦП стремилась к 100%.

Вывод прост — не размещайте на одном хосте несколько требовательных к производительности виртуальных серверов, лучше разнесите их по разным хостам и разбавьте чем-то не ресурсоемким (например файловыми серверами или контроллерами домена).

По идее на серверах в продакшене нормой будет средняя загрузка не более 60%, но это уже совсем другая история.

Источник

Счетчики Hyper-V

В следующей таблице описаны счетчики Microsoft Hyper-V.

Сводные данные о работоспособности виртуальных машин Hyper-V\Работоспособность в норме

Указывает, что хост-сервер работает должным образом.

Всегда должно равняться 1.

Сводные данные о работоспособности виртуальных машин Hyper-V\Критическое состояние

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

Должно быть меньше 65%.

Если значение равно 1, то сервер находится в критическом состоянии и необходимо провести дальнейший анализ для определения точной причины неполадки.

Счетчики производительности процессора Hyper-V

В следующей таблице описаны счетчики производительности процессора Hyper-V.

Счетчик Описание Пороговое значение Устранение неполадок

% времени гостевой работы логического процессора низкоуровневой оболочки Hyper-V

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

Должно быть меньше 65%.

Существует один логический процессор, нагрузка которого превышает все остальные, — LP0. На этот логический процессор направляются все прерывания в системе. Если нагрузка слишком велика, значение счетчика для этого логического процессора может достичь 100%, что, скорее всего, означает: ввод-вывод является узким местом в системе. В Windows Server 2008 R2 предусмотрен ряд технологий, которые помогают снизить нагрузку на сеть. Эти технологии включают Virtual Machine Queue (VMQ), VM Chimney и RSS. На гостевых виртуальных машинах RSS не поддерживается.

% времени работы низкоуровневой оболочки логического процессора низкоуровневой оболочки Hyper-V

Показывает процент времени, затраченного процессором в коде низкоуровневой оболочки. Используется для оценки общей загрузки процессора низкоуровневой оболочки для всей системы.

Должно быть меньше 5%.

% времени простоя логического процессора низкоуровневой оболочки Hyper-V

Показывает процент времени, затраченного процессором в состоянии простоя. Используется для оценки бездействия процессора для всей системы.

Должно быть выше 30%.

% общего времени работы логического процессора низкоуровневой оболочки Hyper-V

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

Должно быть меньше 70%.

% времени гостевой работы виртуального процессора низкоуровневой оболочки Hyper-V

Показывает процент времени, затраченного виртуальным процессором в гостевом коде для конкретной виртуальной машины.

Должно быть меньше 65%.

% времени работы низкоуровневой оболочки виртуального процессора низкоуровневой оболочки Hyper-V

Показывает процент времени, затраченного процессором в коде низкоуровневой оболочки для конкретной виртуальной машины.

Должно быть меньше 5%.

% времени простоя виртуального процессора низкоуровневой оболочки Hyper-V

Показывает процент времени, затраченного процессором в состоянии простоя для конкретной виртуальной машины.

Должно быть выше 30%.

% общего времени работы виртуального процессора низкоуровневой оболочки Hyper-V

Показывает процент времени, затраченного процессором в гостевом коде и коде низкоуровневой оболочки для конкретной виртуальной машины.

Должно быть меньше 70%.

% времени гостевой работы корневого виртуального процессора низкоуровневой оболочки Hyper-V

Показывает процент времени, затраченного виртуальным процессором в гостевом коде. Используется для определения загрузки процессора для стека виртуализации на хост-сервере.

Должно быть меньше 5%.

% времени работы низкоуровневой оболочки виртуального процессора низкоуровневой оболочки Hyper-V

Показывает процент времени, затраченного виртуальным процессором в коде низкоуровневой оболочки. Используется для определения загрузки процессора для низкоуровневой оболочки, которая используется узлом (и не относится к определенным виртуальным машинам).

Должно быть меньше 5%.

Счетчики памяти Hyper-V

В следующей таблице описаны основные счетчики памяти Hyper-V.

Счетчик Описание Пороговое значение Устранение неполадок

Значение «Доступно МБ» — это объем физической памяти в мегабайтах (МБ), непосредственно доступной для выделения процессу или использования системой. Оно показывает, сколько памяти осталось для гостей. Существует резервный объем 256 МБ, 512 МБ или 2048 байт, который корень всегда оставляет вне гостевой памяти. Точный объем зависит от выпуска Hyper-V. Если виртуальная машина не запускается, это может быть связано с тем, что для удовлетворения требованиям резерва доступно слишком мало памяти.

Должно быть больше 2 МБ.

Память\Обмен страниц в сек

Показывает скорость чтения страниц с диска и их записи на диск при устранении ошибок страниц физической памяти. Это оценка потребности в памяти, поскольку данный счетчик отслеживает устойчивые неисправности. Устойчивые неисправности — это ошибки страниц физической памяти, для устранения которых требуется доступ к диску. Обычно это число резко возрастает, когда в системе остается слишком мало памяти и процессы конкурируют друг с другом за ресурсы физической памяти.

Раздел Hyper-V VM Vid\Выделенных физических страниц

Показывает общее число гостевых страниц и страниц драйвера виртуальной инфраструктуры (VID), которое требуется для управления виртуальной машиной.

Раздел Hyper-V VM Vid\Выделенных удаленных страниц

В системах с доступом к неоднородной памяти (NUMA) этот счетчик показывает, охватывает ли виртуальная машина несколько узлов.

Желательно по возможности избегать такой конфигурации. Можно потребовать, чтобы виртуальная машина запускалась с определенного узла, при помощи интерфейса API, описанного в разделе Нужно повысить производительность? Попробуйте установить соответствие между виртуальной машиной и узлом NUMA. Другой способ — остановить и перезапустить виртуальную машину. При соответствующей возможности Hyper-V выделит всю память одному узлу NUMA.

Примечание. Содержимое и URL-адрес любого блога могут быть изменены без предварительного уведомления. Содержимое каждого блога предоставляется без передачи прав на условиях «как есть», без каких-либо гарантий. На предлагаемые примеры сценариев и коды распространяются условия использования продуктов корпорации Майкрософт.

Корневой раздел низкоуровневой оболочки Hyper-V\1-гигабайтных GPA-страниц

Показывает число 1-гигабайтных страниц, присутствующих в гостевом пространстве физических адресов (GPA) раздела. Это показатель того, использует ли виртуальная машина большие страницы, которые улучшают ее общую производительность.

Большие страницы используются только в системах с аппаратной поддержкой vTLB. Дополнительные сведения о vTLB см. в разделе Почему быстродействие настольного ПК снижается при установке Hyper-V.

Примечание. Содержимое и URL-адрес любого блога могут быть изменены без предварительного уведомления. Содержимое каждого блога предоставляется без передачи прав на условиях «как есть», без каких-либо гарантий. На предлагаемые примеры сценариев и коды распространяются условия использования продуктов корпорации Майкрософт.

Корневой раздел низкоуровневой оболочки Hyper-V\2-мегабайтных GPA-страниц

Показывает число 2-мегабайтных страниц, присутствующих в пространстве GPA раздела. Это показатель того, использует ли виртуальная машина большие страницы, которые улучшают ее общую производительность.

Большие страницы используются только в системах с аппаратной поддержкой vTLB. Дополнительные сведения о vTLB см. в разделе Почему быстродействие настольного ПК снижается при установке Hyper-V.

Примечание. Содержимое и URL-адрес любого блога могут быть изменены без предварительного уведомления. Содержимое каждого блога предоставляется без передачи прав на условиях «как есть», без каких-либо гарантий. На предлагаемые примеры сценариев и коды распространяются условия использования продуктов корпорации Майкрософт.

Корневой раздел низкоуровневой оболочки Hyper-V\Кэшированных страниц

Показывает число страниц, кэшированных в раздел. Это показатель того, какой объем памяти использует низкоуровневая оболочка для управления виртуальной машиной.

Счетчики сети Hyper-V

В следующей таблице описаны основные счетчики сети Hyper-V.

Счетчик Описание Пороговое значение Устранение неполадок

Сетевой интерфейс(*)\Всего байт в секунду

Показывает скорость, с которой сетевой адаптер обрабатывает данные. Этот счетчик включает данные всех приложений и файлов, а также данные протоколов, такие как заголовки пакетов.

Для 100-мегабайтного сетевого адаптера значение не должно превышать 6—7 Мбайт/с.

Для 1000-мегабитного сетевого адаптера значение не должно превышать 60—70 Мбит/с.

Сетевой интерфейс(*)\Исходящих пакетов с ошибками

Показывает количество исходящих пакетов, которые не удалось передать из-за ошибок.

Всегда должно равняться 0.

Показывает число переходов TCP-подключений в состояние CLOSED непосредственно из состояний SYN-SENT или SYN-RCVD, а также число переходов TCP-подключений в состояние LISTEN непосредственно из состояния SYN-RCVD.

Увеличение числа сбоев или постоянно растущая частота сбоев могут указывать на нехватку пропускной способности.

Показывает число переходов TCP-подключений в состояние CLOSED непосредственно из состояний SYN-SENT или SYN-RCVD, а также число переходов TCP-подключений в состояние LISTEN непосредственно из состояния SYN-RCVD.

Увеличение числа сбоев или постоянно растущая частота сбоев могут указывать на нехватку пропускной способности.

Показывает число переходов TCP-подключений в состояние CLOSED непосредственно из состояний ESTABLISHED или CLOSE-WAIT.

Увеличение числа сбросов или постоянно растущая частота сбросов могут указывать на нехватку пропускной способности.

Некоторые браузеры отправляют пакеты TCP Reset (RST), поэтому используйте этот счетчик при определении частоты сброса с осторожностью.

Показывает число переходов TCP-подключений в состояние CLOSED непосредственно из состояний ESTABLISHED или CLOSE-WAIT.

Увеличение числа сбросов или постоянно растущая частота сбросов могут указывать на нехватку пропускной способности.

Некоторые браузеры отправляют пакеты TCP Reset (RST), поэтому используйте этот счетчик при определении частоты сброса с осторожностью.

Виртуальный коммутатор Hyper-V\Байт/сек

Этот счетчик показывает общее число байт, прошедших через сетевой адаптер.

Виртуальный коммутатор Hyper-V\Пакетов/сек

Этот счетчик показывает общее число байт, полученных в секунду сетевым адаптером.

Виртуальный сетевой адаптер Hyper-V\Байт/сек

Этот счетчик показывает общее число байт, проходящих в секунду через виртуальный коммутатор.

Для 100-мегабайтного сетевого адаптера значение не должно превышать 6—7 Мбайт/с.

Для 1000-мегабитного сетевого адаптера значение не должно превышать 60—70 Мбит/с.

Виртуальный сетевой адаптер Hyper-V\Пакетов/сек

Этот счетчик показывает общее число пакетов, проходящих в секунду через виртуальный коммутатор.

Источник

Счетчики и показания © 2021
Внимание! Информация, опубликованная на сайте, носит исключительно ознакомительный характер и не является рекомендацией к применению.

Adblock
detector
Счетчик Описание Пороговое значение Устранение неполадок