- PerfMon дозволяє проводити вимірювання в режимі реального часу та довготривалий запис за допомогою точних та налаштовуваних лічильників.
- Набори колекціонерів та Logman сприяють повторюваному захопленню даних та автоматизації на серверах.
- Порогові значення для пам'яті, процесора, диска та мережі допомагають виявляти вузькі місця та витоки.
- Монітор надійності доповнює аналіз, показуючи збої та проблеми сумісності.

PerfMon (Performance Monitor) ес Найкращий інструмент для моніторингу у WindowsPerfMon: Дозволяє переглядати показники продуктивності процесора, пам’яті, диска, мережі та певних процесів у режимі реального часу, у довгостроковій перспективі та аналізувати їх. На відміну від диспетчера завдань, PerfMon регулярно приймає вибірки та записує їх на диск, що робить його ідеальним для виявлення проблем, які виникають лише після кількох годин роботи, таких як переповнення пам’яті або витік ресурсів у службах і програмах.
У цій статті ми покажемо вам як користуватися PerfMon. Від вибору та розуміння правильних лічильників, налаштування вибірки та масштабування діаграм, до створення наборів збирачів даних для реєстрації показників у файл (BLG/CSV).
Що таке PerfMon і коли його використовувати?
Монітор продуктивності (PerfMon) — це вбудований переглядач та записувач лічильників Windows.Представляє метрики у вигляді графіків та необроблених даних, отриманих із системних та прикладних лічильників (наприклад, із .NET CLR або певного процесу). Його найбільша перевага над «швидкими» утилітами, такими як Диспетчер завдань полягає в тому, що ви можете залишати його працювати годинами або днями з періодичними вибірками, щоб виявити реальні тенденції (піки, базові лінії, стійке зростання).
PerfMon має вирішальне значення для діагностувати зростання пам'яті, витоки дескрипторів або потоків, та ізолювати проблемні компоненти, виконавши спеціальні тести. Наприклад, якщо ви підозрюєте витік пам'яті, вам потрібно ввімкнути лічильники, такі як Private Bytes, Handle Count та Thread Count для ураженого процесу, а також лічильники пам'яті .NET CLR, такі як # Bytes in all Heaps та Gen 2 size heap для .NET-застосунків, щоб побачити, чи відбувається зростання під час або поза межами GC.

Способи відкриття PerfMon та спеціалізованих режимів
Ви можете відкрити PerfMon у меню «Пуск» знайдіть «продуктивність» або «perfmon» і запустіть від імені адміністратора коли ви створюєте журнали або запитуєте дані до віддалених комп’ютерів.
Якщо ви віддаєте перевагу Командний рядок (Win+R або CMD), у вас є дуже корисні прямі режими з таким синтаксисом:
perfmon </res|report|rel|sys>
Що робить кожен варіант?
- /яловичина щоб відкрити перегляд ресурсів
- / звіт щоб запустити пакет системної діагностики та переглянути звіт.
- / rel щоб відкрити Монітор надійності.
- / sys щоб перейти безпосередньо до класичного монітора продуктивності.
Поради: якщо ви хочете перевірити надійність обладнання, PerfMon / отн Це прямий шлях до стабільності та історії помилок.
Монітор стабільності системи Він також знаходиться в Панелі керування > Система та безпека > Безпека та обслуговування. Інший спосіб скорочення: введіть «reliab» у поле пошуку меню «Пуск» і виберіть «Переглянути історію надійності». Ви побачите критичні події, попередження та інформацію за день або тиждень, з доступом до технічні деталі збої програм і драйверів.
Візуалізація в реальному часі: додавання та розуміння лічильників
Щоб побачити графік у реальному часі, відкрийте «Монітор продуктивності» в дереві ліворуч. Якщо є попередньо завантажені лічильники і ви хочете розпочати їх очищення, виберіть їх у таблиці нижче та натисніть Верховний Потім у області діаграми клацніть правою кнопкою миші > Додати лічильники…, щоб відкрити діалогове вікно з усіма доступними категоріями.
Виберіть категорія інтересу, лічильник та екземпляр об'єкта (наприклад, ваш процес). Щоб діагностувати пам’ять та ресурси в певній програмі, додайте ці ключові лічильники з групи Процес y Пам'ять .NET CLR де це доречно:
- Процес \ Приватні байтиПриватна пам'ять, виділена процесом (не спільно з іншими). Стале зростання вказує на фактичне споживання власної віртуальної пам'яті.
- Кількість обробників процесу: кількість відкритих дескрипторів. Постійне збільшення часто вказує на витік ресурсів (сеансів, системних об'єктів).
- Кількість процесів \ потоківКількість активних потоків у процесі. Неочікувані сплески можуть свідчити про проблеми з паралельністю або незавершені потоки.
- Пам'ять .NET CLR \ # Байтів у всіх купахЗагальний обсяг пам'яті для об'єктів .NET. Якщо він зростає без стабілізації, перевірте наявність тиску GC та невипущених посилань.
- Пам'ять .NET CLR \ розмір купи 2-го поколінняРозмір купи 2-го покоління (довговічні елементи). Подальше зростання свідчить про незібрані довговічні елементи.
Інтерпретуйте графік критичноЯкщо ви помітили, що кількість приватних байтів (Private Bytes) постійно зростає, тоді як кількість байтів у всіх купах (Heaps) та розмір купи Gen 2 залишаються стабільними, зростання відбувається не в купі .NET, а в власній пам'яті/резервах процесу. Така закономірність зазвичай вказує на витік за межі GC (наприклад, розморожені буфери або дескриптори).

Налаштуйте графік: масштаб, інтервал та тривалість
PerfMon дозволяє налаштуйте видимість кожного лічильника та період історії, який ви бачите. Натисніть Ctrl + Shift + A Щоб вибрати всі лічильники у списку нижче, клацніть правою кнопкою миші та виберіть Масштабувати вибрані лічильники, тож усі вони будуть видимі, і жодна з них не «згладить» решту.
Відкрити Властивості діаграми Клацніть правою кнопкою миші > Властивості… та встановіть частоту дискретизації на вкладці Загальні. Наприклад, вибірка кожні 10 секунд та встановлення тривалості на 10000 охоплює приблизно 2,5 години у вигляді. Чим довше явище, тим більш розподіленою має бути частота дискретизації, щоб уникнути величезних файлів та перевантаження комп’ютера.
Додатковий наконечникPerfMon надає властивості та методи ActiveX, що дозволяє інтегрувати або керувати ним з інших інструментів розробки та навіть вбудовувати його як елемент керування у власну програму, якщо це необхідно.
Автоматизуйте за допомогою Logman: створення, запуск та зупинка
Logman.exe — це утиліта командного рядка для створення та керування наборами лічильників.Відкрийте командний рядок з правами адміністратора та виконайте команду, подібну до наведеної нижче, щоб створити великий пакет безперервного моніторингу з циклічним файлом:
Logman.exe create counter Avamar -o "c:\\perflogs\\Emc-avamar.blg" -f bincirc -v mmddhhmm -max 250 -c "\\LogicalDisk(*)\\*" "\\Memory\\*" "\\Network Interface(*)\\*" "\\Paging File(*)\\*" "\\PhysicalDisk(*)\\*" "\\Processor(*)\\*" "\\Process(*)\\*" "\\Redirector\\*" "\\Server\\*" "\\System\\*" -si 00:00:05
в почати та зупинити зйомку, використовує:
Logman.exe start Avamar
Logman.exe stop Avamar
Поради щодо команд: -f bincirc створює циклічний двійковий журнал (-max обмежує розмір у МБ), -si визначає інтервал вибірки, а -c додає лічильники масово для об'єктів та їх екземплярів. Використовуйте шляхи в лапках та екрануйте зворотні скісну риску під час написання скриптів або експорту конфігурації.
Коли використовувати Логман? Він ідеально підходить для збирати дані на великі відстані На серверах автоматизуйте діагностику або стандартизуйте захоплення даних на кількох машинах. Ви можете запланувати це за допомогою Планувальника завдань і ротувати файли без втручання.

Корисні лічильники та пороги для кожної підсистеми
Пам'ятьВідстежує фактичну ємність, навантаження на підкачки та виснаження системного пулу. Ці лічильники та рекомендації допомагають відокремити симптоми від причин:
- Пам'ять \ % використаних байтівВідсоток виділеної пам'яті, що перевищує ліміт виділення. Якщо він постійно перевищує 80%, перевірте розмір файлу підкачки та фактичне використання.
- Пам'ять \ Доступні мегабайтиЗвільніть фізичну пам'ять. Перевірте, чи не падає обсяг оперативної пам'яті < 5% повторно (а < 1% є критичним).
- Пам'ять \ Використані байтиЗагальна кількість виділених байтів. Не повинна різко змінюватися; часті зміни можуть призвести до розширення файлу підкачки.
- Пам'ять \ пул Несторінковані байтиневивантажуваний пул (об'єкти, які неможливо скинути на диск). Стійкі насичення (> 80%) Вони пов'язані з такими подіями, як 2019 рік (вичерпання невивантажуваного пулу).
- Пам'ять \ пул, сторінки підкачуваних байтів: : вивантажуваний пул. Стійкі значення > 70% від максимуму вказують на ризик події 2020 (вичерпання вивантажуваного пулу).
ПроцесорЗвертайте увагу на тривалі навантаження та інтенсивні сигнали вводу/виводу або шумні драйвери.
- Інформація про процесор \ % часу процесора (усі випадки): >90% стабільної роботи на 1 процесорі або >80% на багатопроцесорній системі свідчить про перевантаження процесора.
- Процесор \ % привілейованого часу: Час роботи в режимі ядра. Постійне перевищення 30% на серверах програм/веб-серверів може свідчити про надмірне навантаження на драйвер або систему.
- Процесор \ % Час переривання y % часу DPC: > 25% вказують на інтенсивну активність пристроїв (мережевої карти, диска тощо).
- Система \ Перемикання контексту/сек y Процесор \ Переривання/сек: корисно для перегляду тиску перемикання контексту та активності переривань.
червоний: вказує на стан мережевої карти та якість зв'язку.
- Мережевий інтерфейс\Отримані пакети відхилено: має залишатися близьким до нуля; зростання значень зазвичай вказує на недостатню кількість буферів/апаратного забезпечення.
- Помилки отримання мережевого інтерфейсу/пакетів: : помилки > 2 постійно потребують перевірки з'єднань/кабелів/драйверів.
Disco: вимірює насичення, затримку та ємність.
- Фізичний диск \ % часу простою: відсоток часу простою. Постійно низький рівень вказує на зайнятий диск; він добре відображає залишок ємності.
- Фізичний диск \ Сер. час читання з диска (сек) y Середній час запису на диску (сек)Середня затримка. Типові рекомендації (рекомендації): Відмінне зчитування < 8 мс, прийнятне < 12 мс, задовільне < 20 мс, погане > 20 мс; Відмінне записування < 1 мс, добре < 2 мс, задовільне < 4 мс, погане > 4 мс.
- Фізичний диск \ Середня довжина черги диска: середні хвости. Значення нижче 2× зазвичай є прийнятними.
- Фізичний диск \ Розділений ввод/вивод/с: Введення/виведення розділені через фрагментацію або недостатній розмір блоків. Чим менше, тим краще.
- Логічний диск \ % вільного місцяЗавжди залишайте > 15% вільними (рекомендовано ≥ 25%) на логічних томах системи.
Дискові об'єкти: фізичні та логічні.
- Фізичний диск додає доступ до всіх розділів фізичного пристрою (ідентифікує обладнання).
- Логічний диск Вимірює певний розділ або точку монтування. У випадку з динамічними дисками логічний том може охоплювати кілька фізичних дисків, а його лічильники відображатимуть загальну кількість.
Процес: співвідносити ресурси з поведінкою певного додатка, моніторити Процес \ % Час процесора, Приватні байти, Віртуальні байти y Робочий набір. Облік ручки Це важливо, якщо ви підозрюєте протікання з басейну; зростання ручки часто одружуються з аномальним збільшенням Пул Невивантажений/Вивантажений.
Монітор надійності: дослідження збоїв та сумісності
Монітор надійності Windows підсумовує стабільність та події за днями або тижнями, класифікуючи критичні, попереджувальні та інформаційніУ кожному стовпці ви можете відкрити розділ «Переглянути технічні деталі», щоб перевірити модулі, код та цифрові підписи відповідних бінарних файлів.
- Практичний прикладВи знайдете записи на кшталт svchost.exe_MapsBroker або інші програми, що призводять до збоїв. Іноді модуль, про який повідомляється (наприклад, Kernelbase.dll), належить до ядра Windows і підписаний Microsoft, що свідчить про те, що першопричиною є не ядро, а програма або плагін, що працює у вашому користувацькому просторі.
- Що робити, коли стара програма не працюєЗапустіть засіб виправлення неполадок сумісності та спробуйте примусово ввімкнути режим сумісності (наприклад, Windows 7) і вимкнути масштабування з високою роздільною здатністю, якщо у вас виникли проблеми з інтерфейсом або продуктивністю. Доведено, що цей параметр вирішує проблеми з збоями у застарілому програмному забезпеченні.
- Пов'язує результати стабільності з PerfMonПоєднує історію збоїв із журналами лічильників, щоб побачити, чи були приватні байти, кількість дескрипторів або затримка диска високими перед збоєм. Ця кореляція дає вам нитку для аналізу.
- Практичне закриттяЗа допомогою PerfMon та Reliability Monitor ви можете діагностувати проблеми, починаючи від симптомів (збій, повільність) і закінчуючи причиною (витік пам'яті, вузьке місце на диску, 100% завантаження процесора, помилки мережі), за допомогою лічильників та порогових значень, які чітко направляють вас.
Якщо вам потрібно короткий посібник для початку роботиВідкрийте PerfMon, додайте лічильники для цільового процесу (приватні байти, % часу процесора тощо), налаштуйте вибірку та тривалість, щоб охопити вікно, в якому виникає проблема, записуйте у файл за допомогою набору колекціонерів та, якщо можливо, автоматизуйте за допомогою Logman на серверах або тестових середовищах, які повинні працювати годинами.
Редактор, що спеціалізується на технологіях та питаннях Інтернету з більш ніж десятирічним досвідом роботи з різними цифровими медіа. Я працював редактором і творцем контенту для компаній електронної комерції, комунікацій, онлайн-маркетингу та реклами. Я також писав на веб-сайтах з економіки, фінансів та інших секторів. Моя робота також є моєю пристрастю. Тепер через мої статті в Tecnobits, я намагаюся вивчати всі новини та нові можливості, які щодня пропонує нам світ технологій для покращення нашого життя.