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

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

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

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

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

  • \Processor\% Processor Timeопределяет уровень загрузки ЦП, и отслеживает время, которое ЦП затрачивает на работу процесса. Уровень загрузки ЦП в диапазоне в пределах 80-90 % может указывать на необходимость добавления процессорной мощности.
  • \Processor\%Privileged Time — соответствует проценту процессорного времени, затраченного на выполнение команд ядра операционной системы Windows, таких как обработка запросов ввода-вывода SQL Server. Если значение этого счетчика постоянно высокое, и счетчики для объекта Физический диск также имеют высокие значения, то необходимо рассмотреть вопрос об установке более быстрой и более эффективной дисковой подсистемы (см. более подробную статью об анализе производительности дисков с помощью PerfMon).
  • \Processor\%User Time — соответствует проценту времени работы CPU, которое он затрачивает на выполнение пользовательских приложений.

Запустите Performance Monitor с помощью команды perfmon. В разделе Performance Monitor отображается загрузкой CPU в реальном времени с помощью графика (параметр Line), с помощью цифр (параметр Report), с помощью столбчатой гистограммы (параметр Histogram bar) (вид выбирается в панели инструментов). Чтобы добавить счетчики, нажмите кнопку “+” (Add Counters).

добавить счетик в perfmon

Слева направо двигается линия в реальном времени и отображает график загрузки процессора, на котором можно увидеть, как всплески, так и постоянную нагрузку.

график производительности в perfmon

Например, вам нужно посмотреть загрузку процессора виртуальными машинами и самим Hyper-V. Выберите группу счетчиков Hyper-V Hypervisor Logical Processor, выберите счетчик % Total Run Time. Вы можете показывать нагрузку по всем ядрам CPU (Total), либо по конкретным (HV LP №), либо всё сразу (All Instances). Выберем Total и All Instances.

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

Группы сборщиков данных в PerfMon

Чтобы не сидеть целый за наблюдением движения линии, создаются группы сбор данных (Data Collector Set), задаются для них параметры и периодически просматриваются.

Чтобы создать группу сбора данных, нужно нажать на разделе User Defined правой кнопкой мыши, в меню выбрать New -> Data Collector Set. Выберите Create manually (Advanced) -> Create Data Logs и включите опцию Performance Counter. Нажмите Add и добавите счётчики. В нашем примере % Total Run Time из группы Hyper-V Hypervisor Logical Processor и Available MBytes из Memory. Установите интервал опроса счётчиков в 3 секунды.

создать data collector set

Далее вручную запустите созданный Data Collector Set, нажав на нём правой кнопкой мыши и выбрав в меню пункт Start.

запустить сбор данных в perfomance monitor

Через некоторое время можно просмотреть отчёт. Для этого в контекстном меню группы сбора данных нужно выбрать пункт Latest Report. Вы можете посмотреть и проанализировать отчёт производительности в виде графика. Отчёт можно скопировать и переслать. Он хранится в C:\PerfLogs\Admin\CPU_Mon и имеет расширение .blg.

Если нужно на другом сервере запустить такой же набор счётчиков, как на первом, то их можно переносить экспортом. Для этого в контекстном меню группы сбора данных выберите пункт Save Template, укажите имя файла (расширение .xml). Скопируйте xml файл на другой сервер, создайте новую группу сбора данных, выберите пункт Create from a template и укажите готовый шаблон.

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

В определённый критический момент в Performance Monitor могут срабатывать алерты, которые помогают ИТ-специалисту прояснить суть проблемы. В первом случае алерт может отправить оповещение, а во втором – запустить другую группу сбора данных.

Чтобы создать алерт в PerfMon, нужно создать ещё один Data Collector Set. Укажите его имя CPU_Alert, выберите опцию Create manually (Advanced), а затем — Performance Counter Alert. Добавьте счётчик % Total Run Time из Hyper-V Hypervisor Logical Processor, укажите границу загрузки 50 %, при превышении которой будет срабатывать алерт, установите интервал опроса счётчика в 3 секунды.

создать alert в perfmon

Далее нужно зайти в свойства данной группы сбора информации, перейти на вкладку Alert Action, включить опцию Log an entry in the application event log и запустить группу сбора данных. Когда сработает алерт, в журнале (в консоли Event Viewer в разделе Applications and Services Logs\Microsoft\Windows\Diagnosis-PLA\Operational) появится запись:

Performance counter \Processor(_Total)\% Processor Time has tripped its alert threshold. The counter value of 100.000000 is over the limit value of 50.000000. 50.000000 is the alert threshold value”.

Performance counter Time has tripped its alert threshold

Здесь же рассмотрим и второй случай, когда нужно запустить другую группу сбора данных. Например, алерт срабатывает при достижении высокой загрузки CPU, делает запись в лог, но вы хотите включить сбор данных с других счётчиков для получения дополнительной информации. Для этого необходимо в свойствах алерта в меню Alert Action в выпадающем списке Start a data collector set выбрать ранее созданную группу сбора, например, CPU_Mon. Рядом находится вкладка Alert Task, в которой можно указать разные аргументы либо подключить готовую задачу из консоли Task Scheduler, указав её имя в поле Run this task when an alert is triggered. Будем использовать второй вариант.

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

С помощью Task Scheduler можно выполнить какие-то действия: выполнить команду, отправить письмо или вывести сообщение на экран (сейчас последниед ве функции не поддерживаются, считаются устаревшими (deprecated)). Для вывода на уведомления на экран можно использовать скриптом PowerShell. Для этого в консоли Task Scheduler создайте новую задачу, на вкладке Triggers выберите One time, на вкладке Actions в выпадающем поле Action выбирите параметр Start a program, в поле 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, в поле Program/Script укажите полный путь к утилите (у нас C:\Scripts\Mail\mailsend.exe), а в поле Add arguments (optional) через параметры нужно передать значения: электронный адрес, адрес и номер порта SMTP-сервера, текст письма и заголовка, пароль:

-to [email protected] -from [email protected] -ssl -port 465 -auth -smtp smtp.ddd.com -sub Alarm -v -user [email protected] +cc +bc -M "Alarm, CPU, Alarm" -pass "it12345"

где +cc означает не запрашивать копию письма, +bc — не запрашивать скрытую копию письма.

Счетчики производительности это встроенные компоненты, которые позволяют собрать статистику использования ресурсов системы, для дальнейшего анализа, с целью выявления узких мест в системе.

Потенциально узкими местами могут являться:

  • Процессор
  • Память
  • Жесткие диски
  • Сеть

Ниже приведу основной перечень счетчиков, которые в первую очередь потребуется проанализировать для первичной диагностики производительности системы, их краткую характеристику и возможные Варианты решения, при превышении допустимых показателей. Рассматривать их будем по отдельным логическим блокам.

Процессор

Processor \ %Processor Time — время, которое процессор тратит на выполнение полезной работы, в процентах от общего системного времени. Если среднее значение величины утилизации процессора превышает 70% в течение длительного времени, значит процессор – узкое место в системе.

System \ Processor Queue Length — длина очереди к процессору. Если долгий период времени средняя длина очереди превышает значение 2 * количество ядер процессоров, то это говорит о том, что процессор является узким местом.

Варианты решения:

  • Замена процессоров на более быстродействующие;
  • Увеличение количества ядер в случае виртуализации;
  • Перенос приложений, интенсивно использующих процессор на отдельный компьютер. Например, установка сервера 1С:Предприятия и Microsoft SQL Server на разных компьютерах;

Память

Memory \ Available Mbytes — отражает объем доступной памяти в мегабайтах. Желательное состояние — 25% от общей памяти, если занято больше 90% оперативной памяти, значит нужно однозначно принимать меры для исправления.

Memory \ Pages/sec — характеризует интенсивность обмена между дисковой подсистемой и оперативной памятью. Обращение к дисковой системе происходит из-за того, что запрашиваемые страницы отсутствуют в оперативной памяти. Если значение данного счетчика достигает или превышает 20, следует внимательно изучить активность страничного обмена.

Варианты решения:

  • Увеличение объема оперативной памяти, установленной на компьютере;
  • Перенос приложений, интенсивно использующих оперативную память, на отдельный компьютер. Например, установка сервера 1С:Предприятия и Microsoft SQL Server на разных компьютерах;

Жесткие диски

Physical Disk \ Avg. Disk sec/Write/Read — показывает среднее время на запись/чтение в секундах.

Данные счетчики показывают, успевает ли накопитель отработать все запросы от выполняющихся процессов. При работе с дисковым кэшем нормальное время на чтение или запись обычно составляет менее 10 мс. Следует учитывать, что если дисков больше одного, то необходимо анализировать каждый по отдельности.

Physical Disk \ Avg. Disk Write/Read Queue Length — средняя длина очереди к диску на запись. В идеале значение этих счетчиков должно равняться 0. Не критично если значение будет не более 2 * количество дисков, работающих параллельно.

Disk bytes/sec — показывает скорость обмена с диском в байт/с при записи или чтении. Данный счетчик может показать, соответствует ли скорость диска заявленным производителем характеристикам.

Рекомендуют от 40 Мб в секунду и выше.

Disk Writes/Reads/sec — это частота выполнения операций чтения и записи. Данный счетчик особо важен для анализа при использовании дисковых массивов. Обычно его рекомендуемое значение указано в документации к конкретному оборудованию.

Варианты решения:

  • Установка более быстрых дисков;
  • Использование дисков с интерфейсом SCSI;
  • Использование аппаратного RAID — контроллера; 
  • Увеличение количества дисков в RAID — массиве;

Сеть

Основными счетчиками сетевых интерфейсов, требующих внимания являются:

Network Interface \ Bytes Total/sec — этот счетчик показывает скорость, с которой происходит получение или посылка байт через сетевой интерфейс. Его оптимальный показатель — не более 65% от пропускной способности сетевого адаптера.

Output Queue Length — это количество исходящих пакетов в очереди. Всегда должна быть 0, но может достигать 2 на мгновение. Если среднее значение счетчика более двух, это значит что сетевой интерфейс не справляется с передачей данных.

Варианты решения:

  • Установка сетевого адаптера с более высокой пропускной способностью (если позволяют параметры сети);
  • Установка дополнительного сетевого адаптера;

Для большей наглядности, приведу предельные значения показателей основных счетчиков в виде таблицы:

Таблица характеристик

Разобравшись с тем, какие счетчики нам в первую очередь нужны и за что они отвечают, можем приступить к самой настройке.

Для настройки счетчиков производительности необходимо запустить системный монитор, например, нажатием комбинации клавиш Win + R и написать perfmon.

Здесь правой кнопкой на группу Особые создаем новую группу сборщиков данных:

Как настроить счетчики производительности Windows - рисунок 1

Далее выбираем, что создавать новую группу будем вручную:

Как настроить счетчики производительности Windows - рисунок 2

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

Как настроить счетчики производительности Windows - рисунок 3

На следующем шаге должны выбрать, какие конкретно счетчики мы будем анализировать(выбираем счетчики, рассмотренные выше). Интервал выборки можно оставить по умолчанию, однако стоит учитывать, что для более точного анализа, нужно выбрать более короткие интервалы:

Как настроить счетчики производительности Windows - рисунок 4

Далее необходимо определить каталог для хранения данных. Можно оставить по умолчанию, однако следует учесть, что у пользователя, от именно которого будет запускаться процесс сборки, должно быть право на запись в указанный каталог.

Как настроить счетчики производительности Windows - рисунок 5

выбираем пользователя и жмем Готово:

Как настроить счетчики производительности Windows - рисунок 6

После завершения настройки мы можем открыть свойства созданной группы сборщиков и изменить некоторые параметры, например, можем настроить расписание выполнения задания:

Как настроить счетчики производительности Windows - рисунок 7

задать условие остановки, например, чтобы на каждый день был отдельный файл данных, для более удобного анализа:

Как настроить счетчики производительности Windows - рисунок 8

Состав счетчиков зависит от версии ОС, от установленных программ, локализации системы и программного обеспечения и др. Следует сказать, что если каких-либо счетчиков не удалось найти, их можно добавить, выполнив команду ниже от имени админимтратора:

  • cd %systemroot%\system32 
  • lodctr /R

Далее проанализируем некоторые графики счетчиков производительности, чтобы понять как выглядят ситуации, которые свидетельствуют о проблемах с производительностью(на анализируемый период просьба не обращать внимания, так как графики приведены чисто в ознакомительных целях).

Процессор

На скриншоте ниже мы видим, что процент загрузки процессора больше 80 на протяжении всего рабочего дня. Однозначно нужно принимать меры:

Как настроить счетчики производительности Windows - рисунок 9

 Тут мы видим, что очередь к процессору также превышает максимально допустимую:

Как настроить счетчики производительности Windows - рисунок 10

Память

При анализе показателей оперативной памяти, особый интерес представляет минимально доступный объем. Как видим на графике ниже, он у нас равняется 0, что не есть хорошо. Также о проблемах с памятью свидетельствует и среднее значение показателя данного счетчика в 1 ГБ. Это однозначно является узким местом системы:

Как настроить счетчики производительности Windows - рисунок 11

Диск

На графике ниже можно увидеть, что среднее время на запись составляет 65 мс. Даже с учетом того, что при скорости записи до 50 мс «тормоза» не будут так сильно ощущаться, тут однозначно ситуацию необходимо исправить.

Как настроить счетчики производительности Windows - рисунок 12

На следующем скриншоте можно заметить, что очередь к диску на чтение выше предельно допустимого и его среднее значение достигает 21:

Как настроить счетчики производительности Windows - рисунок 13

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

Автор статьи — Михаил Комаров, MVP — Cloud and Datacenter Management

В данной статье будут рассмотрены:

  • механизм работы со счетчиками производительности;
  • настройка сборщиков данных как с помощью графического интерфейса, так и с помощью командной строки;
  • создание черного ящика для записи данных.

Также рассмотрим и обсудим работу с утилитой PAL и ее применение для сбора и анализа данных, включая типовые проблемы локализованных систем.

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

Сбор данных

Начнем со всем давно известного Performance Monitor. Это стандартная утилита, которая входит во все современные редакции Windows. Вызывается либо из меню, либо из командной строки или строки поиска в Windows 8/10 вводом команды perfmon. После запуска утилиты мы видим стандартную панель, в которой можем добавить и удалить счетчики, изменить представление и масштабировать графики с данными.

Также есть сборщики данных, с помощью которых производится сбор данных о производительности системы. При определённых навыках и сноровке операции по добавлению счетчиков и настройке параметров сбора данных можно производить из графического интерфейса. Но когда возникает задача настройки сбора данных с нескольких серверов, разумнее использовать утилиты командой строки. Вот этими утилитами мы и займемся.

Первая утилита — это Typeperf, которая может выводить данные со счетчиков производительности на экран или в файл, а также позволяет получить список счетчиков, установленных в системе. Примеры использования.

Выводит на экран загрузку процессора с интервалом 1 сек.:

typeperf "\Processor(_Total)\% Processor Time"

Выводит в файл названия счётчиков производительности, связанные с объектом PhysicalDisk:

typeperf -qx PhysicalDisk -o counters.txt

В нашем случае мы можем использовать утилиту Typeperf, чтобы создать файл с нужными нам счетчиками, который в дальнейшем будем использовать как шаблон для импорта счетчиков в сборщик данных.

Следующая утилита – Logman. Данная утилита позволяет создавать, изменять и управлять различными сборщиками данных. Мы будем создавать сборщик данных для счетчиков производительности. Вот, например, краткая справка по команде Logman, которая относится к счетчикам производительности и управлению сборщиком данных.

Разберем несколько примеров, которые нам понадобятся в дальнейшем.

Создадим сборщик данных с именем DataCollector_test, импортировав счетчики производительности из файла test.xml:

logman import DataCollector_test -xml C:\PerfTest\test.xml

Создание файла для сбора данных производительности с включённым циркулярным режимом и заданным размером:

logman update DataCollector_test -f bincirc -max 600

Изменение пути файла с данными производительности по умолчанию:

logman update DataCollector_test -o C:\PerfTest\Test_log.blg

Запуск коллектора данных DataCollector_test:

logman start DataCollector_test

Остановка коллектора данных DataCollector_test:

logman stop DataCollector_test

Отметим, что все эти действия можно производить с удаленным компьютером.

Рассмотрим еще одну утилиту — Relog, которая позволяет производить манипуляции с файлом данных после работы сборщика данных. Вот ее описание:

Ниже несколько сценариев применения этой утилиты.

Извлечение данных счетчиков производительности из файла logfile.blg с применением фильтра со списком счетчиков counters.txt и записью результата в бинарный формат:

relog logfile.blg -cf counters.txt -f bin

Извлечение списка счетчиков производительности из logfile.blg в текстовый файл counters.txt:

relog logfile.blg -q -o counters.txt

Напрямую работать с этой утилитой мы не будем, но информация о ней в дальнейшем поможет в случае возникновения проблем в файле PowerShell, который генерирует утилита PAL.

Отметим еще один момент, некоторые системы анализа требуют данные с наименованиями счетчиков производительности на английском языке. Если интерфейс нашей системы на русском языке, то нам необходимо проделать следующие манипуляции: завести локального пользователя, дать ему права на сбор данных (обычно дают права локального администратора), войти в систему под ним и в свойствах системы изменить язык интерфейса.

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

После этого имена счетчиков и файлов будут на английском языке.

Также отметим возможность сбора данных для SQL Server с помощью утилиты из состава продукта. Это SQLDIAG, которая обрабатывает журналы производительности Windows, журналы событий Windows, трассировки SQL Server Profiler, сведения о блокировках SQL Server и сведения о конфигурации SQL Server. Указать, какие типы сведений нужно собирать с помощью программы SQLdiag, можно в файле конфигурации SQLDiag.xml.

Для конфигурирования файла SQLDiag.xml можно использовать инструмент PSSDIAG с codeplex.com.

Вот так выглядит окно этого инструмента.

В итоге, процесс сбора данных для SQL может выглядеть так. С помощью PSSDIAG мы формируем xml-файл. Далее посылаем этот файл клиенту, который запускает SQLDIAG c нашим xml-файлом на удаленном сервере и присылает нам для анализа результат работы в виде blg-файла, который мы будем анализировать в следующей части.

Анализ данных с помощью утилиты PAL

Данная утилита написана Clint Huffman, который является PFE-инженером Microsoft и занимается анализом производительности систем. Также он является одним из авторов авторизованного курса Vital Sign, который читается в Microsoft и доступен для корпоративных заказчиков, в том числе в России на русском языке. Утилита распространяется свободно, ссылку на нее я приведу ниже.

Вот так выглядит стартовое окно утилиты.

На вкладке Counter Log задаётся путь к файлу данных со счетчиками производительности, собранными ранее. Также мы можем задать интервал, за который будет производиться анализ.

На вкладке Threshold File находится список шаблонов, которые можно экспортировать в формат xml и использовать как список счетчиков для сборщика данных. Обратите внимание на большой выбор шаблонов для анализа производительности для различных систем. Пример загрузки из командной строки был показан выше. Самое ценное, что в этих заранее подготовленных шаблонах установлены граничные значения для этих параметров, которые будут использованы в дальнейшем для анализа собранных данных!!!

Вот так, например, выглядят граничные значения для счётчиков дисковой производительности:

Мы можем создавать свои шаблоны с использованием нужных счетчиков, которые будут подстроены под нужды нашей организации.

Действуем по следующему алгоритму: на рабочей станции запускаем утилиту PAL, переходим на вкладку Threshold File и экспортируем шаблон в виде xml-файла. На основании этого файла на сервере создаем сборщик данных и запускаем сборку информации.
После сбора данных копируем полученный файл на рабочую станцию, чтобы анализом не нагружать сервер, возвращаемся на вкладку Counter Log, указываем путь к файлу. Снова переходим на Threshold File и выбираем тот самый шаблон, который экспортировали для сборщика данных.

Переключаемся на вкладку Question и указываем объем оперативной памяти на сервере, на котором был осуществлён сбор данных. В случае 32-битной системы заполним UserVa.

Переходим к вкладке Output Options, на которой задаем интервал разбиения для анализа. Значение по умолчанию AUTO делит интервал на 30 равных частей.

Вкладка File Output выглядит довольно обычно, указываем на ней путь к файлам итоговых отчетов в формате HTML или XML.

Вкладка Queue показывает итоговый скрипт на PowerShell. В общем можно сказать, что утилита собирает параметры, которые она подставляет в скрипт PAL.PS1.

Итоговая вкладка задает параметры исполнения. Можно одновременно запустить несколько скриптов и указать число потоков на процессоре. Хотелось бы акцентировать внимание, что обработку blg делает не утилита, а скрипт PowerShell, и это открывает возможности для полной автоматизации анализа логов. Например, каждые сутки перезапускается сборщик данных, в результате освобождается текущий blg-файл и создаётся новый. Старый файл копируется на специальный сервер, где будет запускаться скрипт, обрабатывающий данный файл. После этого готовый HTML- или XML-файл с результатами перемещается в определённую директорию или высылается на почтовый ящик.

Обратите внимание, что утилита должна работать только в английской локализации. Иначе получим сообщение об ошибке.

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

Итогом работы утилиты будет отчет в выбранном формате, в котором есть графики и числовые данные, позволяющие понять, что происходило в системе за заданный период с учетом граничных значений алертов в шаблоне на вкладке Threshold File. В общем, анализ HTML-файла позволит на начальном этапе определить проблемные места в системе и понять, куда двигаться дальше, как в плане более тонкого мониторинга, так и в плане модернизации или переконфигурирования системы. В блоге Clint Huffman есть скрипт, которым можно конвертировать файл шаблона с граничными условиями в более понятный формат.

Черный ящик

Иногда возникает необходимость в превентивном мониторинге проблемной системы. Для этого мы создадим «черный ящик», в который будем записывать данные производительности. Вернемся к скриптам, описанным ранее.

Создадим сборщик данных c именем BlackBox, импортировав счетчики производительности из файла SystemOverview.xml, который выгрузили из утилиты PAL или создали самостоятельно:

logman import BlackBox -xml C:\ BlackBox\SystemOverview.xml

Создание файла для сбора данных производительности с включённым циркулярным режимом и заданным размером 600 МБ (около 2 суток при стандартном наборе счетчиков):

logman update BlackBox -f bincirc -max 600

Изменение пути файла с данными производительности по умолчанию:

logman update BlackBox -o C:\ BlackBox \ BlackBox _log.blg

Запуск коллектора данных BlackBox:

logman start BlackBox

Данный скрипт создает задачу перезапуска сборщика данных в случае перезапуска системы:

schtasks /create /tn pal /sc onstart /tr "logman start BlackBox " /ru system

На всякий случай поправим свойства диспетчера данных, чтобы не заполнить место на диске, так как после перезапуска сборщика данных создается новый файл с лимитом 600 МБ.

Отметим, что скопировать файл с данными можно только при остановленном сборщике данных. Остановить же последний можно скриптом или с помощью графического интерфейса.

Остановка коллектора данных BlackBox:

logman stop BlackBox

На этом закончим часть, посвященную сбору и первичному анализу производительности.

Ресурсы

Performance Monitor
https://technet.microsoft.com/en-us/library/cc749154.aspx

Утилита PAL
https://pal.codeplex.com/

Блог Clint Huffman
http://blogs.technet.com/b/clinth/

Книга Clint Huffman
Windows Performance Analysis Field Guide
http://www.amazon.com/dp/0124167012/ref=wl…=I2TOVTYHI6HDHC

Счетчики производительности. Часть 1

Производительность компьютера определяется скоростью, с которой компьютер выполняет поставленные задачи. На общую производительность системы влияет много факторов — вычислительная мощность процессора, количество доступной оперативной памяти, скорость дисковой подсистемы, пропускная способность сетевых интерфейсов и т.д.

Иногда при недостаточной производительности может потребоваться проанализировать ситуацию и отследить использование ресурсов приложениями или системными процессами, чтобы затем увеличить мощность системы в соответствии с возрастающими запросами.

Одним из самых мощных инструментов для обнаружения проблем с производительностью в Windows являются встроенные счетчики производительности (Performance Counters). О них и пойдет речь в этой статье.

Performance Monitor

Основным инструментом для управления счетчиками производительности в Windows является оснастка Монитор производительности (Performance Monitor), в более ранних версиях Windows известная как Системный монитор. Performance Monitor имеет несколько режимов отображения и позволяет выводить показания счетчиков производительности в режиме реального времени, а также сохранять данные в лог-файлы для последующего изучения.

Найти Performance Monitor можно в меню Пуск (стартовый экран в Server 2012) в разделе Administrative tools, либо нажав Win+R и в окне «Run» выполнить команду perfmon.msc. Стоит иметь в виду, что не все пользователи имеют права на использование этой оснастки. Кроме членов группы Administrators, которые имеют полные права и могут пользоваться всеми ее возможностями, есть еще две группы:

• Пользователи системного монитора (Performance Monitor Users) — могут просматривать (локально или удаленно) данные монитора производительности и изменять свойства отображения в реальном времени. Не имеют прав на создание и изменение групп сборщиков данных (Data Collector Set);
• Пользователи журналов производительности (Performance Log Users) — имеют все права предыдущей группы, а также могут создавать и изменять группы сборщиков данных.

Ну а обычные пользователи, входящие в группу Users, могут только открывать лог-файлы для просмотра в мониторе производительности.

Важно. В соответствием с требованием инструментария управления Windows (WMI) группе Performance Log Users необходимо предоставить право входа в систему в качестве пакетного задания. Для этого надо открыть оснастку локальной политики безопасности (secpol.msc), в разделе «Local policies\User Rights Assignment» найти параметр Log on as batch job и добавить в список группу Performance Log Users.

разрешение на вход в качестве пакетного задания

Добавление счетчиков

Итак, первое что мы делаем, открыв Performance Monitor, это добавляем в окно мониторинга необходимые нам счетчики. По умолчанию в окне уже отображается один счетчик, показывающий общую загрузку процессора. Удалить ненужный счетчик можно, выделив его и нажав на красный крестик на панели инструментов, либо клавишей Delete. Для добавления счетчиков жмем зеленую кнопку либо Ctrl+N.

Performance monitor

Открывается окно добавления счетчиков. В поле «Select counters from computer» задаем имя или IP-адрес компьютера, за которым будет вестись наблюдение. Кстати, Performance Monitor может отображать в одном окне счетчики с разных компьютеров.

Затем выбираем счетчики производительности из списка. Все счетчики объединены в группы, как правило содержащие в своем названии имя объекта производительности. Например, для мониторинга сетевой активности открываем группу Network Interface и выбираем счетчики, показывающие объем получаемого и передаваемого сетевого трафика, общий объем трафика и текущую пропускную способность.

Если вы сомневаетесь в назначении какого либо счетчика, то есть возможность посмотреть его описание. Для этого надо отметить чекбокс «Show description» в левом нижнем углу. Описание не очень подробное, но достаточно информативное.

Примечание. Количество счетчиков производительности довольно велико и зависит от версии операционной системы и установленых серверных ролей и компонентов. Так, например, в Windows Server 2012 добавлено большое количество счетчиков, предназначеных для мониторинга виртуальных машин. Кроме того, некоторые серверные продукты, такие как Exchange или SQL Server добавляют в систему собственные счетчики.

Выбрав объект мониторинга и выделив нужные счетчики, в поле «Instances of selected оbject» выбираем экземпляр (Instance) объекта. Так выбрав в качестве объекта сетевые интерфейсы, здесь мы указываем, за каким именно необходимо наблюдать. Можно выбрать один или несколько экземпляров, выбрав All Instance мы выведем данные для каждого экземпляра отдельно , а значение _Total выведет усредненное значение по всем экземплярам объекта.

Далее кнопкой «Add»добавляем выбранные счетчики в окно справа и сохраняем изменения кнопкой OK.

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

Вот так выглядит окно монитора производительности после добавления счетчиков. По умолчанию значения счетчиков производительности выводятся в виде линейного графика. Выбрав конкретный счетчик, можно посмотреть в панели текущее (last), минимальное (minimum), максимальное (maximum) и среднее (average) значения за указанный период времени.

Если одновременно используется большое число счетчиков, то следить за каждым из них может быть затруднительно. Поэтому при необходимости лишние счетчики лучше скрыть, для чего достаточно снять флажок в столбце Show.

Нажав соответствующую кнопку на панели инструментов, можно выбрать режим отображения в виде гистограммы (Histogram bar) или в виде отчета (Report). Также между режимами можно переключаться сочетанием клавиш Ctrl+G.

изменение режима просмотра

Так например, если необходимо постоянно отслеживать текущие значения счетчиков, то режим отчета более нагляден.

просмотр данных в режиме отчета

Как вариант, можно выделить конкретный счетчик, так чтобы он отражался более жирной линией. Для этого выбираем нужный счетчик и жмем на кнопку Highlight, расположенную в панели инструментов. Также для выделения можно воспользоваться сочетанием клавиш Ctrl+H.

выделение одного счетчика

Настройка Performance Monitor

Performance Monitor имеет множество настроек, предназначенных для наилучшего отображения данных. Открыть диалоговое окно настроек монитора производительности можно, кликнув на нем правой клавишей мышки и выбрав пункт Properties, либо нажав на неприметную кнопку в панели инструментов, либо нажав Ctrl+Q.

переход к настройкам отображения

На вкладке General можно:

• Display Elements — удалить\добавить элементы, отображаемые в окне Performance Monitor;
• Report and Histogramm Data — изменить значения, отображаемые в режиме отчета и гистограммы. По умолчанию в них отображаются текущие значения счетчиков. Можно указать минимальное, максимальное или среднее значение, при этом отображаемые данные будут каждый раз пересчитываться;
• Sample Automaticaly — автоматический съем данных. По дефолту выборка данных производится автоматически, с заданным интервалом. Убрав галку, мы тем самым включим ручной режим, в котором снятие данных осуществляется кнопкой Update Data на панели инструментов, или сочетанием клавиш Ctrl+U. Также переключаться с ручного режима на автоматический и обратно можно клавишами Ctrl+F;
• Graph elements — элементы диаграммы. В поле Sample Every задается интервал обновления данных в автоматическом режиме, а в поле Duration — временной отрезок, отображаемый в окне Performance Monitor. По умолчанию данные обновляются каждую секунду, а отображаемый интервал составляет 100 секунд. Для более-менее длительного наблюдения эти значения желательно увеличить.

На вкладке Source (Источник) мы указываем, откуда брать данные:

• Current activity — текущая активность, выводится в окне Performance Monitor по умолчанию;
• Log files — здесь можно указать путь к сохраненному ранее файлу журнала;
• Database — использовать в качестве источника базу данных SQL. Performance Monitor позволяет записывать и извлекать данные о производительности в базу данных, конечно при наличии SQL сервера.

На вкладке Data можно отредактировать список счетчиков, а также изменить визуальные параметры отображения каждого счетчика — цвет (Color), масштаб (Scale), ширину линии (Width) и ее стиль (Style).

На вкладке Graph изменяем отображение графика:

• View — задаем режим отображения: график, гистограмма или отчет;
• Scroll style — тип прокрутки, указывающий направление прокрутки для линейного графика. Выбрав Wrap (Зацикливание) график будет прокручиваться слева направо, Scroll (Продвижение) — в обратном направлении;
• Title — название графика, отображаемое под панелью инструментов;
• Vertical axis — при помощи этого параметра можно дать название вертикальной оси координат;
• Show — включает отображение вертикальной и горизонтальной сетки и подписи со значениями для осей координат;
• Vertical scale — диапазон значений вертикальной шкалы. Здесь устанавливаем минимальное и максимальное значение, которые будут отображаться на графике.

Ну и на вкладке Appearance настраивается цветовое оформление и используемый шрифт.

Сохранение данных о производительности

Иногда может потребоваться сохранить полученные данные, например для предоставления отчета или для проведения дальнейшего анализа. Performance Monitor позволяет экспортировать полученные данные в файл. Для экспорта надо кликнуть правой клавишей мыши в окне и в открывшемся меню выбрать пункт «Save Settings As». По умолчанию отчет сохраняется в формате HTML, и его можно открыть в любом браузере.

Также можно выбрать для сохранения формат файла с расширением .tsv — файл с разделителями — знаками табуляции. Этот формат может использоваться для экспорта данных в электронные таблицы. А выбрав в контекстном меню пункт «Save Image As» можно сохранить содержимое экрана в виде изображения в формате GIF.

Сохранение данных в файл

Вот так выглядит в браузере HTML-отчет. В нем сохранены все параметры монитора производительности, включая тип отображения, заголовки и т.п.

работа с данными в HTML

PowerShell

Значения счетчиков производительности можно посмотреть и из консоли PowerShell, где для этого есть специальный командлет Get-Counter. Хотя PowerShell имеет гораздо меньше возможностей для отображения счетчиков производительности, чем Performance Monitor, но зато может использоваться в режиме установки Server Core, при полном отсутствии графического интерфейса.

Предположим, мы хотим с его помощью посмотреть загрузку процессора. Сначала выведем все доступные счетчики для процессора:

(Get-Counter -ListSet Processor).counter

Затем выбираем нужный и выводим его значение:

Get-Counter -Counter ″\Processor(_total)\% Processor Time″ -SampleInterval 10 -MaxSamples 2

— В скобках указывается экземпляр счетчика (Instance), в данном примере это ядра процессора. Можно указать номер конкретного  экземпляра, либо поставить звездочку (*), тогда будет выведена информация по каждому экземпляру, а указав параметр (_total), мы получим суммарную информацию по всем экземплярам.
— Параметр -SampleInterval указывает периодичность снятия данных, а -MaxSamples — количество попыток. Так в примере данные снимаются 2 раза с интервалом в 10 секунд. Если вместо этих параметров указать -Continuous, то данные будут сниматься непрерывно, пока вы не нажмете Ctrl+C;
При необходимости можно вывести значения с нескольких счетчиков, указав их через запятую.

Просмотр счетчиков с помощью PowerShell

Заключение

Итак, сегодня мы рассмотрели некоторые способы использования счетчиков производительности для мониторинга серверов в режиме реального времени. В следующей статье речь пойдет о настройке групп сборщиков данных, сохранении данных в файлы журналов и последующем их анализе, а также о настройке уведомлений.

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

0. Оглавление

  1. Запуск системного монитора
  2. Добавление группы сборщиков данных
  3. Запуск сборщика данных по расписанию
  4. Автоматический перезапуск сборщика данных
  5. Работа с группами сборщиков данных из командной строки

1. Запуск системного монитора

Итак, запускаем Системный монитор Windows (Windows Performance Monitor). Во всех версиях Windows Server сделать это проще всего выполнив команду perfmon (Win+R — «perfmon» — «ОК»)

performance-monitor_02

2. Добавление группы сборщиков данных

Теперь добавим новую группу сборщиков данных.

Но прежде всего, необходимо убедиться, что пользователь, под которым вы работаете, является членом группы «Пользователи журналов производительности» (Performance Log Users) или группы «Администраторы» (Administrators) (или аналогичной).

Для добавления новой группы сборщиков данных, в запустившемся Системном мониторе Windows в дереве консоли слева раскрываем вкладку  «Группы сборщиков данных» (Data Collector Set), кликнем правой кнопкой мыши по группе «Особые» (User Defined) и в контекстном меню выберем пункт «Создать» (New) — «Группа сборщиков данных» (Data Collector Set).

sborshhiki-dannyx-01

Запуститься мастер создания группы сборщиков данных. На первой странице мастера вводим имя группы сборщиков, выбираем пункт «Создать вручную (для опытных)» (Create manually (Advenced)) и нажимаем «Далее» (Next).

sborshhiki-dannyx-02

Выбираем тип данных «Создать журналы данных» (Create data logs), ставим флаг «Счетчик производительности» (Performance counter) и снова жмем «Далее» (Next).

sborshhiki-dannyx-03

На следующей странице мастера, необходимо выбрать счетчики производительности по которым будет идти запись в журнал. Нажимаем кнопку «Добавить» (Add), после чего откроется знакомое по предыдущей статье окно добавления счетчиков. Счетчиков очень много. Для удобства все счетчики сгруппированы по типу оборудования или ПО. Обратите внимание, что можно добавлять как счетчики текущего компьютера, так и компьютеров сети (при наличии соответствующих прав).

Для некоторых счетчиков возможно выбрать конкретный экземпляр объекта. Например, при добавлении счетчика «Средняя длина очереди диска» (Avg. Disk Queue Length) можно выбрать диск, для которого будет собираться статистика.

Выбрав необходимый счетчик (или конкретный экземпляр объекта для счетчика) следует перенести его в таблицу «Добавленные счетчики» (Added Counters) с помощью кнопки «Добавить» (Add). Добавив все необходимые счетчики, нажимаем «ОК».

sborshhiki-dannyx-04

После чего все выбранные счетчики перенесутся в список счетчиков создаваемой группы сборщиков данных. Устанавливаем интервал сбора данных (Sample interval) (рекомендуется 15 сек.) и нажимаем «Далее» (Next).

sborshhiki-dannyx-05

Теперь необходимо указать каталог, в котором будет храниться журнал системного монитора. По умолчанию это каталог

%sistemdrive%\PerfLogs\Admin\<Имя группы сборщиков данных>

Однако если вы не Администратор, вам, скорее всего, не хватит прав на каталог C:\PerfLogs. И в этом случае, следует выбрать папку для логов там, куда гарантированно есть право на запись.

Определившись с корневой папкой для хранения файлов журнала, жмем «Далее» (Next).

sborshhiki-dannyx-06

На последней странице мастера также можно выбрать пользователя Windows из под которого будет вестись замер производительности. Сменив пользователя (или оставив значение по умолчанию) устанавливаем переключатель, отвечающий за последующие действия программы в значение «Сохранить и закрыть» (Save and close) и нажимаем «Готово» (Finish) для завершения работы мастера.

sborshhiki-dannyx-07

После чего в дереве консоли в группе «Особые» (User defined) увидим нашу только что созданную группу сборщиков данных. Для того, чтобы сборщик данных начал запись в показателей счетчиков в журнал, необходимо кликнуть по нему правой кнопкой мыши и в контекстном меню выбрать пункт «Пуск» (Start) или нажать соответствующую кнопку на панели задач оснастки.

sborshhiki-dannyx-08

Если все настроено правильно, и сборщик начал запись в журнал, иконка группы сборщика данных сменится на иконку со значком «Play». Даже если завершить сеанс пользователя, сборщик все равно продолжит свою работу.

sborshhiki-dannyx-09

При текущих настройках сборщик будет работать до тех пор, пока не произойдет перезагрузка сервера, или его не остановят вручную. Для этого достаточно в контекстном меню группы сборщиков данных выбрать пункт «Стоп» (Stop) или нажать соответствующую кнопку на панели задач.

sborshhiki-dannyx-10

В соответствии с выбранными настройками, в указанном раннее каталоге можно найти файл журнала текущего замера производительности. Каждый перезапуск сборщика начинает новый файл.

sborshhiki-dannyx-11

Просматривать данный журнал производительности можно в системном мониторе, выбрав нужный файл в качестве источника в свойствах системного монитора как показано на рисунке ниже (можно добавить сразу несколько файлов, в этом случае данные из всех замеров будут выведены на одном графике).

sborshhiki-dannyx-13

Но намного удобнее это делать, найдя нужный журнал в дереве консоли, развернув вкладки «Отчеты» (Reports) — «Особые» (User Defined). Здесь для каждой созданной группы сборщиков данных хранятся сведения о файлах журналов замера производительности. Чтобы просмотреть данные журнала достаточно просто выбрать его в дереве.

sborshhiki-dannyx-12

Просматривать файлы журнала можно на любом компьютере, где установлен Системный монитор. Таким образом данные счетчиков можно собирать на нескольких компьютерах, а просматривать на одном, их можно отправлять по электронной почте и т. д.

3. Запуск сборщика данных по расписанию

Также есть возможность настроить запуск сборщика данных по расписанию. Для этого следует кликнуть правой кнопкой мыши по группе сборщиков данных, для которой необходимо настроить расписание, и в контекстном меню выбрать пункт «Свойства» (Properties).

sborshhiki-dannyx-16

В открывшемся окне свойств сборщика данных доступно для изменения множество параметров сборщика. В частности, на вкладке «Расписание» (Schedile) можно настроить несколько триггеров, по которым будет запускать замер производительности. Например, на картинке ниже, установлено расписание, при котором сборщик данных будет запускаться каждый будний день в 10:00 в течении всего Июня 2015 года.

sborshhiki-dannyx-15

Осталось только определить время остановки записи работы счетчиков. Сделать это можно на вкладке «Условие остановки» (Stop Condition). На приведенном ниже рисунке сборщик будет работать в течении одного часа.

sborshhiki-dannyx-17

Дожидаемся назначенного времени и видим, что файл журнала успешно сформировался и доступен для анализа в дереве консоли оснастки «Производительность» (Performance).

sborshhiki-dannyx-18

4. Автоматический перезапуск сборщика данных

Когда сборщик данных ведет запись показателей счетчиков, сам файл журнала недоступен для просмотра. Это не совсем удобно, т. к. иногда требуется и производить запись и просматривать данные замера производительности. В этом случае можно настроить автоматический перезапуск сборщика данных, например через каждый час. При новом запуске, сборщик начнет новый файл журнала, остальные же файлы мы сможем сразу просматривать в системном мониторе.

Прежде всего, для удобства хранения фалов журнала, поменяем формат имени папки (Subdirectory name format), в которой будет храниться файл с данными замера производительности. Сделать этом можно вызвав окно свойств текущего сборщика данных и перейдя на вкладку «Папка» (Directiry). Здесь с помощью встроенной подсказки можно установить шаблон создаваемых папок. Установим имя, соответствующее полному времени начала работы группы сборщика данных, т. е. в формате «yyyyMMdd\HHmmss».

sborshhiki-dannyx-20

Затем на вкладке «Условие остановки» (Stop Condition) установим флаг «Перезапускать группу сборщиков данных при достижении предела.» (Restart the data collector set at limits) и установим длительность (Duration) работы счетчика, например 1 час, после чего сохраняем изменения с помощью кнопки «ОК».

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

sborshhiki-dannyx-22

5. Работа с группами сборщиков данных из командной строки

Работать с группами сборщиков данных можно как и из оснастки «Производительность» (Performance), так и из командной строки с помощью программы logman.exe. Синтаксис и примеры работы данного оператора можно получить выполнив команду

logman /?

sborshhiki-dannyx-14

В ситуации, когда приходится постоянно настраивать сбор данных монитора производительности у разных клиентов на разных серверах, удобно один раз написать bat-файл, который будет создавать новую группу сборщиков данных с определенным набором счетчиков производительности.

Например, bat-файл, создающий группу сборщиков данных аналогичную описанной в данной статье выше, будет содержать код (bat-файлы удобно писать с помощью программы Notepad++):

@ECHO OFF
ECHO Adding counter "New_counter"...

rem Создаем новую группу сборщиков данных
logman create counter New_counter -f bincirc -c ^
	"\Processor(_Total)\%% Processor Time" ^
	"\Memory(_Total)\Page/sec" ^
	"\Memory(_Total)\%% Uncommited Bytes In Use" ^
	"\Memory(_Total)\Available Bytes" ^
	"\System(_Total)\Processor Queue Length" ^
	"\PhysicalDisk(_Total)\Avg. Disk Queue Lenghth" ^
	"\PhysicalDisk(*)\Avg. Disk Queue Lenghth" ^
	"\Network Interface(*)\Bytes Total/sec" ^
	-si 15 -v mmddhhmm

rem Запускаем монитор производительности
C:\Windows\System32\Perfmon.exe

ECHO done

(Скачать bat-файл)

Названия счетчиков заключаются в кавычки и разделяются пробелом. Имена счетчиков можно писать как в англоязычном варианте, так и на русском языке (но тогда bat-файл будет работать только в русскоязычных версиях Windows). Если в названии счетчика встречается знак %, его необходимо заменить знаками %% (двойной процент).

Выполнив данный файл, сразу попадем в монитор производительности, где увидим только что созданную группу сборщиков данных с именем New_counter.

sborshhiki-dannyx-19

Описанных счетчиков, как правило, хватает для общей оценки загруженности системы. Другие счетчики используются для детального расследования проблем, если установлено, что имеет место недостаточная производительность оборудования.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Добавление домена в существующий лес windows 2019
  • Как переключаться между экранами windows 10 быстро
  • Как установить файл msix на windows 7
  • Что входит в windows 7 home basic
  • Восстановить калькулятор windows 10 powershell