Hyper-V и производительность. Часть 5 — Набор счетчиков «Hyper-V Hypervisor Logical Processors»


«Hyper-V Hypervisor Logical Processors» — один из важнейших наборов счетчиков для оценки производительности виртуальных машин Hyper-V. Кроме того, это один из немногих наборов, на которые не действуют странности работы таймера в виртуальных машинах. Перед тем, как начать рассматривать данный набор, я напомню, что логические процессоры — это ядра физического процессора и потоки Hyper-Threading (при его наличии), которыми гипервизор управляет как самостоятельными процессорами. Так, двухпроцессорный четврехъядерных сервер без HT имеет восемь логических процессоров, а он же с HT — уже шестнадцать.


Для каждого логического процессора существует свой набор счетчиков. Также вы можете рассмотреть суммарную загрузку всех логических процессоров, выбрав в Performance Monitor в качестве экземпляра логического процессора значение _Total. Рассмотрим же сами счетчики данного набора:






























































%Guest Run Time


Показывает загрузку логического процессора задачами виртуальной машины. Например, запустив процессороемкую задачу на однопроцессорной ВМ в системе с двумя логическими процессорамми, вы увидите загрузку около 95% на счетчике LP(0), нулевую загрузку на счетчике LP(1) и общую загрузку 47.5% на экземпляре _Total.


%Hypervisor Run Time


Указывает загрузку логического процессора задачами гипервизора. Этот счетчик похож на «% Kernel Run Time» в семействе счетчиков Processor.


%Idle Run Time


Указывает процент времени, в которое логический процессор не занят и ожидает задачи.


%Total Run Time


Суммирует значения «%Guest Run Time» и «% Hypervisor Runtime». Может немного (до 1%) превысить значение 100% — в виду того, что значения слагаемых вычисляется в два разных такта, и за время между ними нагрузка может немного перераспределиться.


%C1 Time


C1 — один из энергосберегающих режимов работы процессора. Значение «%C1 Time» для каждого логического процессора показывает процент времени, когда он находится в энергосберегающем состоянии C1. Для экземпляра _Total счетчик показывает усредненное значение по всем логическим процессорам. (Если вас интересуют энергосберегающие режимы работы Windows, почитайте Processor Power Management in Windows Vista and Windows Server 2008).


%C2 Time


С2 — более жесткий энергосберегающий режим. Данный счетчик аналогичен предыдущему — разница в типе энергосберегающего состояния.


%C3 Time


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


C1 Transitions / Sec


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


C2 Transitions / Sec


Аналогичен предыдущему — разница лишь в типе энергосберегающего состояния.


C3 Transitions / Sec


Аналогичен предыдущему — разница лишь в типе энергосберегающего состояния.


Hardware Interrupts / Sec


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


Total interrupts / sec


Количество всевозможных прерываний, получаемых логическим процессором. Экземпляр _Total показывает суммарное количество всех прерываний, происходящих в вашей системе за секунду.


Monitor Transition Cost


Cтоимость (время) отправки прерывания от логического процессора до гипервизора. В обычном случае прерывание заставляет систему переходить из пользовательского режима (User mode) в режим ядра (Kernel mode) и наоборот. Для виртуальных сред Hyper-V прерывание переводит систему из режима пользователя или ядра в специальный режим, называемый режимом гипервизора («Hypervisor», иногда также встречается название режима «Virtual Machine Monitor»). Соответственно, чем меньше значение этого счетчика — тем лучше. Счетчик совершенно не показательный в терминах производительности системы, однако помогает сравнить относительную производительность разных процессоров.


Context Switches / sec


Показывает, сколько раз виртуальных процессор был привязан к какому-нибудь логическому процессору. Значение экземпляра _Total покажет полное количество таких привязок. Значения районе тысячи на одну виртуальную машину являются хорошим показателем. Высокое значение вызвано тем, что даже при отсутствии задач процессор будет исполнять инструкции «Halt», производя переключения на другие задачи, ожидающие исполнения.


Scheduler Interrupts / sec


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


Inter-processor interrupts sent /sec


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


Inter-processor interrupts /sec


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


Timer interrupts / sec


Hyper-V поддерживает свой набор таймеров (APIC timer, PM Timer и так далее). Данный счетчик показывает, сколько раз логический процессор прерывался для выполнения прерывания от таймера.


Мы завершили рассмотрение семейства счетчиков, описывающего логические процессоры. Впереди еще два семейства с процессорами виртуальными. Stay tuned.

Comments (0)

Skip to main content