У цій статті ми розглянемо особливості використання вбудованих лічильників продуктивності Performance Monitor для моніторингу стану Windows Server. Лічильники PerfMon можна використовувати для відстеження змін певних параметрів продуктивності сервера (алертів) і оповіщати адміністратора в разі виникнення високого завантаження або інших позаштатних станах.

Найчастіше для моніторингу працездатності, доступності, завантаженості серверів використовуються сторонні продукти. Якщо вам потрібно отримувати інформацію про продуктивність додатків або заліза тільки з одного-двох Windows-серверів, або коли це потрібно на непостійній основі, або виник складніший випадок, що вимагає глибокого траблшутінга продуктивності, то можна скористатися вбудованим функціоналом Монітор продуктивності Windows.

Performance Monitor має величезну кількість лічильників для отримання інформації про залізо, операційній системі, встановленому ПО у вигляді конкретних цифр. Performance Monitor може вести спостереження за показниками продуктивності сервера в реальному часі або записувати історію.

Основні можливості Performance Monitor, які можна використовувати окремо або разом з іншими сторонніми системами моніторингу (типу Zabbix, Nagios, Cacti і інші):

  • cистема моніторингу при поданні інформації про продуктивність спочатку звертається до Performance Monitor;
  • головним завданням системи моніторингу є оповіщення про настання тривожного моменту, аварії, а у Performance Monitor – зібрати і надати діагностичні дані.

Поточні значення продуктивності Windows можна отримати з Task Manager, але Performance Monitor вміє дещо більше:

  • Task Manager працює тільки в реальному часі і тільки на конкретному (локальному) хості;
  • в Performance Monitor можна підключати лічильники з різних серверів, вести спостереження тривалий час і зібрану інформацію зберігати в файл;
  • в Task Manager дуже мало показників продуктивності.

Моніторинг продуктивності процесора з Perfomance Monitor

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

  • Процесор % Час процесоравизначає рівень завантаження ЦП, і відстежує час, яке ЦП витрачає на роботу процесу. Рівень завантаження ЦП в діапазоні в межах 80-90% може вказувати на необхідність додавання процесорної потужності.
  • Процесор % привілейований час – відповідає відсотку процесорного часу, витраченого на виконання команд ядра операційної системи Windows, таких як обробка запитів вводу-виводу SQL Server. Якщо значення цього лічильника постійно високу, і лічильники для об’єкта фізичний диск також мають високі значення, то необхідно розглянути питання про встановлення більш швидкого і більш ефективної дискової підсистеми (див. більш детальну статтю про аналіз продуктивності дисків за допомогою PerfMon).
  • Процесор % Час користувача – відповідає відсотку часу роботи CPU, яке він витрачає на виконання додатків.

Запустіть Performance Monitor за допомогою команди перфмон. В розділі Монітор продуктивності відображається завантаженням CPU в реальному часі за допомогою графіка (параметр Лінія), За допомогою цифр (параметр Звіт), За допомогою столбчатой ​​гістограми (параметр Гістограма) (Вид вибирається в панелі інструментів). Щоб додати лічильники, натисніть кнопку “+”(Додати лічильники).

додати счетік в perfmon

Зліва направо рухається лінія в реальному часі і відображає графік завантаження процесора, на якому можна побачити, як сплески, так і постійне навантаження.

графік продуктивності в perfmon

Наприклад, вам потрібно подивитися завантаження процесора віртуальними машинами і самим Hyper-V. Виберіть групу лічильників Логічний процесор Hyper-V Hypervisor, Виберіть лічильник % Загальний час роботи. Ви можете показувати навантаження по всіх ядер CPU (Total), або по конкретним (HV LP №), або все відразу (All Instances). виберемо Разом і Усі екземпляри.

додати лічильники проізводітельсності

Групи збирачів даних в PerfMon

Щоб не сидіти цілий за спостереженням руху лінії, створюються групи збір даних (Набір збирачів даних), Задаються для них параметри і періодично проглядаються.

Щоб створити групу збору даних, потрібно натиснути на розділі Визначений користувачем правою кнопкою миші, в меню вибрати Новий -> Набір збирачів даних. Виберіть Створити вручну (Додатково) -> Створення журналів даних і включіть опцію Лічильник продуктивності. натисніть Додати і додасте лічильники. У нашому прикладі % Загальний час роботи з групи Hyper-V Hypervisor Logical Processor і Доступні МБ з Memory. Встановіть інтервал опитування лічильників в 3 секунди.

створити data collector set

Далі вручну запустіть створений Data Collector Set, натиснувши на ньому правою кнопкою миші і вибравши в меню пункт Почніть.

запустити збір даних в perfomance monitor

Через деякий час можна переглянути звіт. Для цього в контекстному меню групи збору даних потрібно вибрати пункт Останній звіт. Ви можете подивитися і проаналізувати звіт продуктивності у вигляді графіка. Звіт можна скопіювати і переслати. Він зберігається в C: PerfLogs Admin CPU_Mon і має розширення .blg.

Якщо потрібно на іншому сервері запустити такий же набір лічильників, як на першому, то їх можна переносити експортом. Для цього в контекстному меню групи збору даних виберіть пункт Зберегти шаблон, Вкажіть ім’я файлу (розширення .xml). Скопіюйте xml файл на інший сервер, створіть нову групу збору даних, виберіть пункт Створити за шаблоном і вкажіть готовий шаблон.

Створення Alert для моніторингу завантаження CPU

У певний критичний момент в Performance Monitor можуть спрацьовувати Алерт, які допомагають ІТ-фахівця прояснити суть проблеми. У першому випадку Алерт може відправити повідомлення, а в другому – запустити іншу групу збору даних.

Щоб створити Алерт в PerfMon, потрібно створити ще один Data Collector Set. Вкажіть його ім’я CPU_Alert, виберіть опцію Create вручну (додатково), а потім – Попередження про лічильник продуктивності. додайте лічильник % Загальний час роботи з Hyper-V Hypervisor Logical Processor, вкажіть кордон завантаження 50%, при перевищенні якої буде спрацьовувати Алерт, встановіть інтервал опитування лічильника в 3 секунди.

створити alert в perfmon

Далі потрібно зайти в властивості даної групи збору інформації, перейти на вкладку Дія оповіщення, Включити опцію Записати запис у журнал подій програми і запустити групу збору даних. Коли спрацює Алерт, в журналі (в консолі Event Viewer в розділі Журнали програм та служб Microsoft Windows Diagnosis-PLA Operational) з’явиться запис:

Лічильник продуктивності Процесор (_Усього) % Час процесора спрацював поріг попередження. Значення лічильника 100,000000 перевищує граничне значення 50,000000. 50,000000 – порогове значення попередження“.

Лічильник продуктивності Час спрацював поріг попередження

Тут же розглянемо і другий випадок, коли потрібно запустити іншу групу збору даних. Наприклад, Алерт спрацьовує при досягненні високого завантаження CPU, робить запис в лог, але ви хочете включити збір даних з інших лічильників для отримання додаткової інформації. Для цього необхідно у властивостях Алерта в меню Дія оповіщення в випадаючому списку Запустіть набір збирачів даних вибрати раніше створену групу збору, наприклад, CPU_Mon. Поруч знаходиться вкладка Завдання оповіщення, В якій можна вказати різні аргументи або підключити готову задачу з консолі Task Scheduler, вказавши її ім’я в поле Запустіть це завдання, коли спрацьовує попередження. Будемо використовувати другий варіант.

прив'язка data collector set в perfmon до задачі в task Scheduler

За допомогою Task Scheduler можна виконати якісь дії: виконати команду, відправити лист або вивести повідомлення на екран (зараз последніед ве функції не підтримуються, вважаються застарілими (deprecated)). Для виведення на повідомлення на екран можна використовувати скриптом PowerShell. Для цього в консолі Task Scheduler створіть нову задачу, на вкладці Тригери Виберіть Одного разу, На вкладці Дії в випадаючому поле Дія Будь ласка, виберіть параметр Запустіть програму, В поле Program / Script вкажіть powershell.exe, А в поле Add arguments (optional) наступний код:

-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Внимание, CPU загружен', 'Посмотреть')}"

висновок оповіщення alert на екран при високому завантаженні cpu в perfmon

Для відправлення листа ви можете скористатися Командлети PowerShell Send-MailMessage або сторонню утиліту mailsend.exe .. Для цього створіть аналогічне завдання в Task Scheduler, в поле Програма / Сценарій вкажіть повний шлях до утиліти (у нас C: Scripts Mail mailsend.exe), А в поле Додавання аргументів (необов’язково) через параметри потрібно передати значення: електронна адреса, адреса і номер порту SMTP-сервера, текст листа і заголовка, пароль:

-to dep.it@ddd.com -from dep.it@ddd.com -ssl -port 465 -auth -smtp smtp.ddd.com -sub Alarm -v -user dep.it@ddd.com +cc +bc -M "Alarm, CPU, Alarm" -pass "it12345"

де + куб означає не запитувати копію листа, + до н. е – не запитує приховану копію листа.

Leave a Reply

Your email address will not be published. Required fields are marked *