Моніторинг завантаження процесора на серверах Hyper-V.
Процесорний час є одним з основних апаратних ресурсів, тому моніторинг завантаження процесора вкрай важливий для стабільної роботи сервера. І тут варто знати, що моніторинг процесора на серверах Hyper-V відрізняється від моніторингу звичайного сервера додатків.Це пов'язано з особливостями архітектури гипервизора.
Справа в тому, що після установки ролі Hyper-V в системі створюються ізольовані розділи (партіціі, partitions). Для роботи віртуальних машин використовуються гостьові (guest) розділи, сама хостової ОС працює в окремій, батьківської (root) партіціі, а розподілом апаратних ресурсів (процесора, пам'яті і т.п.) займається гипервизор, а не операційна система.
Оскільки стандартні лічильники продуктивності моніторять тільки стан хостовой ОС, то їх показання можуть не відображати реальне навантаження. Особливо це помітно при моніторингу навантаження процесора, в зв'язку з чим для моніторингу Hyper-V необхідно використовувати спеціальні лічильники, відмінні від лічильників продуктивності для моніторингу звичайного сервера додатків.
Для моніторингу завантаження процесора в Hyper-V є три групи лічильників:
• Hyper-V Hypervisor Logical Processor;
• Hyper-V Hypervisor Virtual Processor;
• Hyper-V Hypervisor Root Virtual Processor.
Hyper-V Hypervisor Logical Processor
Це основна група лічильників Hyper-V, яка показує навантаження на процесор в прив'язці до логічних процесорів.Нагадаю, що під логічним процесором система розуміє фізичні ядра процесора або обчислювальні потоки (при використанні Hyper-Threading).
Примітка. Подивитися кількість логічних процесорів можна в Task Manager, в розділі Performance. Так в нашому сервері встановлено 2 процесора по 4 ядра в кожному (всього 8 фізичних ядер) і включений Hyper-Threading, що в цілому дає 16 логічних процесорів.
Hyper-V Hypervisor Logical Processor дозволяє виводити як загальне навантаження (_Total), так і по кожному логічному процесору (LP) окремо. Основні лічильники для моніторингу загального навантаження, це:
% Guest Run Time - навантаження на процесор, створювана віртуальними машинами;
% Hypervisor Run Time - навантаження на процесор, створювана самим гіпервізором, т.е. відсоток процесорного часу, який витрачено гіпервізором на обслуговування віртуальних машин;
% Total Run Time - загальне навантаження на процесор, представляє з себе суму двох попередніх лічильників.
Якщо подивитися на графік завантаження і порівняти результат з тим, що нам показує традиційний лічильник завантаження процесора (% Processor Time), то складається цікава ситуація.Якщо за традиційним лічильнику завантаження процесора знаходиться в районі 4%, то лічильник гипервизора (% Total Run Time) показує середнє навантаження 40%. Як то кажуть, відчуйте різницю