1000+ инструкций в блоге SoftComputers
0 0 голоса
Рейтинг

В этой статье мы подробно рассмотрим, как использовать PowerShell и встроенный инструмент Windows PerfMon (Performance Monitor) для сбора и анализа данных о производительности системы. Вы узнаете, какие существуют категории счётчиков, как создавать собственные наборы для мониторинга, автоматизировать процессы с помощью скриптов и анализировать результаты. Такой подход позволяет администраторам, инженерам и разработчикам эффективно отслеживать работу серверов и рабочих станций, выявлять узкие места и планировать оптимизацию.

Приобрести оригинальные ключи активации Windows 11 можно у нас в каталоге от 1690 ₽

Что такое PerfMon и зачем он нужен

Performance Monitor — это мощный инструмент Windows для анализа производительности системы. Он позволяет в реальном времени или в фоновом режиме собирать данные о процессоре, памяти, дисках, сети, приложениях и других ресурсах.

Основные задачи PerfMon:

– мониторинг ресурсов в реальном времени;

– запись данных в лог для анализа в будущем;

– создание пользовательских наборов счётчиков;

– интеграция с PowerShell для автоматизации.

Использование PowerShell делает PerfMon особенно гибким, позволяя работать не только через графический интерфейс, но и массово на десятках серверов.

Категории счётчиков PerfMon

PerfMon предоставляет сотни счётчиков. Вот ключевые категории:

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

Memory — объём доступной памяти, использование файла подкачки.

LogicalDisk/PhysicalDisk — свободное место, скорость чтения/записи, очередь диска.

Network Interface — скорость приёма и передачи данных, ошибки пакетов.

Process — использование ресурсов конкретными процессами.

SQLServer/IIS/Hyper-V — отдельные наборы счётчиков для серверных приложений.

Сбор данных через PowerShell

Чтобы получить список доступных категорий:

Get-Counter -ListSet * | Select-Object -Property CounterSetName

Пример получения текущей загрузки CPU:

Get-Counter '\\Processor(_Total)\\% Processor Time'

Сбор данных по нескольким метрикам:

Get-Counter '\\Processor(_Total)\\% Processor Time','\\Memory\\Available MBytes','\\LogicalDisk(_Total)\\% Free Space'

Запись данных в лог

Для анализа лучше собирать данные в течение определённого времени. Пример записи в CSV каждые 15 секунд в течение 10 минут:

Get-Counter '\\Memory\\Available MBytes' -SampleInterval 15 -MaxSamples 40 | Export-Csv C:\PerfLogs\memory.csv -NoTypeInformation

Создание Data Collector Set

PerfMon позволяет создавать Data Collector Sets — готовые наборы счётчиков.

Через PowerShell можно использовать logman:


logman create counter "SystemMonitor" -c "\\Processor(_Total)\\% Processor Time" "\\Memory\\Available MBytes" -f csv -o "C:\\PerfLogs\\system_log"
logman start "SystemMonitor"

Для остановки:

logman stop "SystemMonitor"

Автоматизация с PowerShell-скриптами

Скрипты можно запускать вручную или по расписанию (через Task Scheduler). Пример скрипта для запуска мониторинга:


$logName = "PerfMonitor"
$logPath = "C:\\PerfLogs\\monitoring"
logman create counter $logName -c "\\Processor(_Total)\\% Processor Time" "\\LogicalDisk(_Total)\\% Free Space" -f csv -o $logPath
logman start $logName

Добавив этот скрипт в Планировщик задач, можно настроить автоматический сбор данных, например, раз в час.

Анализ собранных данных

Данные в CSV можно открыть в Excel или Power BI. В Excel удобно строить графики и определять тренды. В Power BI можно настроить дашборды с визуализацией.

Пример анализа в PowerShell (среднее значение CPU):


$cpuData = Import-Csv C:\PerfLogs\cpu.csv
($cpuData.CounterSamples | Measure-Object CookedValue -Average).Average

Практические сценарии использования

SQL Server: мониторинг времени выполнения запросов, использования памяти и дисковых операций.

IIS: контроль количества запросов, ошибок, нагрузки на процессор.

Hyper-V: мониторинг виртуальных машин, использование ресурсов хостом.

Рабочие станции: поиск программ, потребляющих слишком много памяти или CPU.

Советы по оптимизации мониторинга

– Сохраняйте логи в отдельную папку (например, C:\PerfLogs).

– Используйте сжатие и ротацию файлов для долгосрочного хранения.

– Настраивайте разные Data Collector Sets для разных задач (например, CPU отдельно, сеть отдельно).

– Совмещайте PerfMon с другими инструментами (Event Viewer, Power BI, Grafana).

Использование PowerShell совместно с PerfMon позволяет превратить мониторинг в гибкий и автоматизированный процесс. Вы можете собирать данные с десятков серверов, сохранять их в удобном виде и быстро анализировать. Такой подход даёт возможность выявлять узкие места заранее, улучшать стабильность систем и оптимизировать работу приложений.

При регулярном использовании PerfMon с PowerShell вы получаете мощный инструмент администрирования, который помогает держать производительность под контролем и предотвращать проблемы ещё до их появления.

author avatar
copywriter
Лицензионный ключ активации Windows 11 от
1690 ₽ Купить
0 0 голоса
Рейтинг
Подписаться
Уведомить о
guest
     
0 отзывов
4
Межтекстовые Отзывы
Посмотреть все комментарии