- PerfMon обеспечивает измерения в реальном времени и длительную запись с помощью точных и настраиваемых счетчиков.
- Collector Sets и Logman упрощают повторяющиеся захваты и автоматизацию на серверах.
- Пороговые значения для памяти, ЦП, диска и сети помогают обнаружить узкие места и утечки.
- Монитор надежности дополняет анализ, показывая сбои и проблемы совместимости.

Перфмон (Performance Monitor) Является ли Лучший инструмент для мониторинга в WindowsPerfMon: позволяет просматривать и анализировать показатели производительности процессора, памяти, диска, сети и отдельных процессов в режиме реального времени и за длительный период. В отличие от диспетчера задач, PerfMon регулярно собирает данные и записывает их на диск, что делает его идеальным инструментом для выявления проблем, которые проявляются только после нескольких часов работы, таких как переполнение памяти или утечки ресурсов в службах и приложениях.
В этой статье мы покажем вам как использовать PerfMon. От выбора и понимания правильных счетчиков и настройки выборки и масштабирования диаграмм до создания наборов сборщиков данных для регистрации показателей в файле (BLG/CSV.
Что такое PerfMon и когда его использовать?
Performance Monitor (PerfMon) — это встроенный в Windows просмотрщик и регистратор счетчиков.. Представляет метрики в виде графиков и необработанных данных, полученных от системных и прикладных счетчиков (например, из .NET CLR или определенного процесса). Его самое большое преимущество перед «быстрыми» утилитами, такими как Менеджер задач заключается в том, что вы можете оставить его работать на несколько часов или дней, периодически производя измерения, чтобы обнаружить реальные тенденции (пики, базовые значения, устойчивый рост).
Перфмон имеет решающее значение для диагностировать рост памяти, обрабатывать или устранять утечки потокови изолируйте проблемные компоненты, выполнив специальные тесты. Например, если вы подозреваете утечку памяти, включите такие счётчики, как Private Bytes, Handle Count и Thread Count для затронутого процесса, а также счётчики памяти .NET CLR, такие как # Bytes in all Heaps и Gen 2 heap size для приложений .NET, чтобы определить, происходит ли рост во время или вне процесса сборки мусора.

Способы открытия PerfMon и специализированных режимов
Вы можете открыть PerfMon в меню «Пуск» найдите «производительность» или «perfmon» и запустите от имени администратора когда вы создаете журналы или отправляете запросы удаленным компьютерам.
Если вы предпочитаете Командная строка (Win+R или CMD), у вас есть очень полезные прямые режимы со следующим синтаксисом:
perfmon </res|report|rel|sys>
Что делает каждый вариант?
- /рез чтобы открыть представление ресурсов
- /отчет для запуска пакета системных диагностических сборщиков и просмотра отчета.
- / отн чтобы открыть Монитор надежности.
- / sys чтобы перейти непосредственно к классическому монитору производительности.
совет: если вы хотите проверить надежность оборудования, PerfMon / отн Это прямой путь к стабильности и истории ошибок.
Монитор стабильности системы Он также находится в разделе «Панель управления» > «Система и безопасность» > «Безопасность и обслуживание». Другой способ: введите «reliab» в поиск меню «Пуск» и выберите «Просмотр журнала надежности». Вы увидите критические события, предупреждения и информацию по дням или неделям, а также получите доступ к Технические подробности сбоев приложений и драйверов.
Визуализация в реальном времени: добавление и понимание счетчиков
Чтобы увидеть живой графикОткройте «Монитор производительности» в дереве слева. Если есть предустановленные счётчики и вы хотите начать очистку, выберите их в таблице ниже и нажмите Как дела. Затем в области диаграммы щелкните правой кнопкой мыши > Добавить счетчики…, чтобы открыть диалоговое окно со всеми доступными категориями.
выбрать категория интереса, счетчик и экземпляр объекта (например, ваш процесс). Для диагностики памяти и ресурсов в конкретном приложении добавьте эти ключевые счётчики из группы Разработка y Память .NET CLR где уместно:
- Процесс \ Частные байты: Приватная память, выделенная процессом (не используемая совместно с другими). Устойчивый рост указывает на фактическое потребление собственной виртуальной памяти.
- Процесс \ Обработать количество: количество открытых дескрипторов. Постоянный рост часто указывает на утечки ресурсов (сеансов, системных объектов).
- Процесс \ Количество потоков: Количество активных потоков в процессе. Неожиданные скачки могут указывать на проблемы с параллельным выполнением или незавершённые потоки.
- Память .NET CLR \ # Байтов во всех кучах: Общий объём памяти для объектов .NET. Если он растёт без стабилизации, проверьте нагрузку на сборщик мусора и наличие неиспользуемых ссылок.
- Память .NET CLR \ Размер кучи Gen 2: Размер кучи второго поколения (долгоживущие элементы). Продолжающийся рост предполагает наличие неутилизированных долгоживущих элементов.
Интерпретируйте график критическим взглядомЕсли вы заметили, что количество байтов Private Bytes стабильно растёт, в то время как количество байтов во всех кучах и размер кучи Gen 2 остаются стабильными, рост происходит не в куче .NET, а в собственной памяти/резервах процесса. Такая закономерность обычно указывает на утечку за пределами сборщика мусора (например, из-за незамороженных буферов или дескрипторов).

Настройте график: масштаб, интервал и длительность.
PerfMon позволяет настройте видимость каждого счетчика и период истории, который вы видите. Нажмите Ctrl+Shift+A Чтобы выбрать все счетчики в списке ниже, щелкните правой кнопкой мыши и выберите Масштабировать выбранные счетчики, поэтому они все будут видны, и ни один из них не будет «сглаживать» остальные.
открывает Свойства диаграммы Щелкните правой кнопкой мыши > «Свойства…» и на вкладке «Общие» задайте частоту выборки. Например, выберите выборку каждые 10 секунд и установите для параметра «Длительность» значение 10000 2,5, чтобы охватить примерно XNUMX часа в представлении. Чем длительнее явление, тем больше должен быть интервал выборки, чтобы избежать создания больших файлов и перегрузки компьютера.
Дополнительный совет: 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 добавляет счётчики для объектов и их экземпляров. Используйте кавычки в путях и экранируйте обратные косые черты при написании скриптов или экспорте конфигурации.
Когда следует использовать Logman? Идеально подходит для собирать данные на большие расстояния На серверах автоматизируйте диагностику или стандартизируйте сбор данных на нескольких машинах. Вы можете запланировать это с помощью планировщика заданий и ротировать файлы без вмешательства пользователя.

Полезные счетчики и пороговые значения для каждой подсистемы
память: Отслеживает фактическую ёмкость, нагрузку на подкачку и истощение системного пула. Эти счётчики и рекомендации помогают отделить симптомы от причин:
- Память \ % выделенных байтов в использовании: Процент выделенной памяти сверх лимита. Если он постоянно превышает 80%, проверьте размер файла подкачки и фактическое использование.
- Память \ Доступно МБ: Свободная физическая память. Проверьте, если объём оперативной памяти < 5% регулярно падает (и < 1% является критическим).
- Память \ Выделенные байты: Общее количество выделенных байтов. Не должно резко меняться; частые изменения могут привести к расширению файла подкачки.
- Память \ Пул невыгружаемых байтов: невыгружаемый пул (объекты, которые невозможно сбросить на диск). Устойчивые насыщения (> 80%) Они связаны с такими событиями, как 2019 год (истощение невыгружаемого пула).
- Память \ Пул выгружаемых байтов: : выгружаемый пул. Устойчивые значения > 70% от максимума указывают на риск события 2020 года (истощение выгружаемого пула).
Процессор: обратите внимание на постоянные нагрузки и тяжелые сигналы ввода-вывода или шумные драйверы.
- Информация о процессоре \ % загруженности процессора (все случаи): >90% при устойчивом использовании 1 ЦП или >80% при использовании нескольких процессоров свидетельствует о перегрузке ЦП.
- Процессор \ % Привилегированного времени: Время режима ядра. Постоянное превышение 30% на серверах приложений/веб-серверах может указывать на чрезмерную нагрузку на драйвер или систему.
- Процессор \ % Время прерывания y % Время DPC: > 25% указывают на интенсивную активность устройства (сетевая карта, диск и т. д.).
- Система \ Контекстные переключения/сек y Процессор \ Прерывания/сек: полезно для просмотра давления переключения контекста и активности прерываний.
Red: указывает на работоспособность сетевой карты и качество связи.
- Сетевой интерфейс\Получено и отброшено пакетов: должно оставаться близким к нулю; растущие значения обычно указывают на недостаточность буферов/оборудования.
- Сетевой интерфейс\Ошибки полученных пакетов: : ошибки > 2 устойчивы, требуется проверка ссылок/кабелей/драйверов.
Диско: измеряет насыщенность, задержку и емкость.
- Физический диск \ % времени простоя: процент времени простоя. Устойчиво низкий показатель указывает на занятость диска и хорошо отражает оставшуюся емкость.
- Физический диск \ Среднее время чтения с диска (сек.) y Среднее время записи на диск (сек.): Средняя задержка. Типичные значения (рекомендации): Отличное чтение < 8 мс, приемлемое < 12 мс, удовлетворительное < 20 мс, плохое > 20 мс; Отличная запись < 1 мс, хорошее < 2 мс, удовлетворительное < 4 мс, плохое > 4 мс.
- Физический диск \ Средняя длина очереди диска: средние значения. Значения ниже 2× обычно разумны.
- PhysicalDisk \ Разделение ввода-вывода/сек: Разделение ввода-вывода из-за фрагментации или неадекватного размера блоков. Чем меньше, тем лучше.
- ЛогическийДиск \ % Свободного места: Всегда оставляйте > 15% свободными (рекомендуется ≥ 25%) на логических томах системы.
Объекты на диске: физические и логические.
- Физический диск добавляет доступ ко всем разделам физического устройства (идентифицирует оборудование).
- ЛогическийДиск Измеряет конкретный раздел или точку монтирования. В случае динамических дисков логический том может охватывать несколько физических дисков, и его счётчики будут отражать общее количество.
Процесс: для корреляции ресурсов с поведением конкретного приложения, мониторинга Процесс \ % загруженности процессора, Частные байты, Виртуальные байты y Рабочий набор. Ручка Количество Это важно, если вы подозреваете, что в бассейне есть протечки; рост ручки часто женятся с ненормальным увеличением Пул невыгружаемый/выгружаемый.
Монитор надежности: исследование сбоев и совместимости
Монитор надежности Windows отображает сводку стабильности и событий по дням и неделям., классифицируя критические, предупреждающие и информационныеИз каждого столбца можно открыть «Просмотр технических подробностей», чтобы просмотреть модули, код и цифровые подписи соответствующих двоичных файлов.
- Практический примерВы обнаружите записи типа svchost.exe_MapsBroker или других приложений, вызывающих сбой. Иногда обнаруженный модуль (например, Kernelbase.dll) принадлежит ядру Windows и подписан Microsoft, что позволяет предположить, что причина кроется не в ядре, а в приложении или плагине, работающем в пользовательском пространстве.
- Что делать, если старое приложение дает сбойЗапустите средство устранения неполадок совместимости и попробуйте принудительно включить режим совместимости (например, Windows 7) и отключить масштабирование с высоким разрешением, если возникнут проблемы с интерфейсом или производительностью. Эта настройка, как было показано, устраняет сбои в устаревшем программном обеспечении.
- Связывает результаты проверки стабильности с PerfMonОбъединяет историю сбоев с журналами счётчиков, чтобы определить, были ли высокие значения Private Bytes, Handle Count или задержки диска до сбоя. Эта корреляция даёт вам нить для анализа.
- Практическое закрытие: С помощью PerfMon и Reliability Monitor вы можете проводить диагностику, начиная с симптомов (сбой, медлительность) и заканчивая причинами (утечка памяти, узкое место на диске, 100% загрузка ЦП, сетевые ошибки), с помощью счетчиков и пороговых значений, которые наглядно вас направляют.
Если вам нужно краткое руководство по началу работы: Откройте PerfMon, добавьте счетчики для целевого процесса (частные байты, % загруженности процессора и т. д.), настройте выборку и продолжительность так, чтобы они охватывали окно, в котором возникает проблема, запишите данные в файл с помощью Collector Set и, если применимо, автоматизируйте с помощью Logman на серверах или тестовых средах, которые должны работать в течение нескольких часов.
Редактор, специализирующийся на вопросах технологий и Интернета, с более чем десятилетним опытом работы в различных цифровых медиа. Я работал редактором и создателем контента в компаниях, занимающихся электронной коммерцией, коммуникациями, онлайн-маркетингом и рекламой. Я также писал на сайтах по экономике, финансам и другим секторам. Моя работа – это также моя страсть. Теперь, благодаря моим статьям в Tecnobits, я стараюсь каждый день изучать все новости и новые возможности, которые предлагает нам мир технологий, чтобы улучшить нашу жизнь.