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

Мониторинг производительности Windows Server, настройка оповещений счетчиков PerfMon

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

Чаще всего для мониторинга работоспособности, доступности, загруженности серверов используются сторонние продукты. Если вам нужно получать информацию о производительности приложений либо железа только с одного-двух Windows-серверов, либо когда это нужно на непостоянной основе, либо возник более сложный случай, требующий глубокого траблшутинга производительности, то можно воспользоваться встроенным функционалом Windows 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).

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

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

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

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

Читайте также:  Acer get windows key

Чтобы создать группу сбора данных, нужно нажать на разделе 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, нажав на нём правой кнопкой мыши и выбрав в меню пункт Start.

Через некоторое время можно просмотреть отчёт. Для этого в контекстном меню группы сбора данных нужно выбрать пункт 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 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”.

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

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

Читайте также:  Перевести windows boot manager

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

Для отправки письма вы можете воспользоваться командлетом PowerShell Send-MailMessage или стороннюю утилиту mailsend.exe.. Для этого создайте аналогичное задание в Task Scheduler, в поле Program/Script укажите полный путь к утилите (у нас C:\Scripts\Mail\mailsend.exe), а в поле Add arguments (optional) через параметры нужно передать значения: электронный адрес, адрес и номер порта 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»

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

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

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

Исходная версия продукта: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер КБ: 300956

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

При использовании средства системного монитора некоторые счетчики могут отоказаться отсутствуют или не содержать данные счетчиков. Базовый набор библиотек счетчиков производительности может быть поврежден и может потребоваться перестроенный. Кроме того, может потребоваться перестроить любые настраиваемые (созданные приложением Microsoft .NET Framework) счетчики или любые дополнительные счетчики.

Такое поведение может происходить в следующих ситуациях:

  • некоторые выращенные счетчики поврегуют реестр.
  • некоторые программы на основе инструментаров управления Windows (WMI) изменяют реестр.

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

Сведения о extensible counter хранятся в обоих следующих расположениях:

Подкомедие реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009 .

Файл %Systemroot%\System32\Perfc009.dat и %Systemroot%\System32\Perfh009.dat файл.

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

Раз expand the Perfc009.dat file and the Perfh009.dat file. Эти файлы находятся на установочных дисках Windows. Сжатые файлы находятся в DriveLetter:\i386\perfc009.da_ папке «и DriveLetter:\i386\perfh009.da_ по». Замените файлы, которые находятся %Systemroot%\System32 в папке.

Запустите редактор реестра и найдите следующий ключ в реестре:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

В реестре измените значение последнего счетчика на 1846 (десятичная), а значение последней справки — на 1847 (десятичная).

Найдите следующий ключ реестра, чтобы найти службы с подмеком «Производительность»:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

Удалите из подмайки «Производительность» следующие значения (если они существуют):

  • Первый счетчик
  • Первая справка
  • Последний счетчик
  • Последняя справка

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

Удаление значений из подмека «Производительность» в реестре может привести к тому, что все установленные приложения .NET Framework не будут работать при следующем их запущении. В этом случае используйте команду в разделе «Повторное добавление дополнительных счетчиков» для перестроения lodctr /R счетчиков производительности. Если при запуске приложения .NET Framework по-прежнему возникают проблемы, см. раздел «Переустановка настраиваемой сборки .NET Framework счетчиков производительности» этой статьи.

Повторное добавление extensible counters

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

Читайте также:  Что такое диагностика сети windows

Откройте окно командной строки.

В командной подсказке введите cd %Systemroot%\System32 и нажмите ввод.

В командной подсказке введите findstr drivername *.ini и нажмите ввод.

Обратите внимание на имя INI-файла для каждого имени драйвера в списке.

В командной подсказке введите lodctr команду и нажмите ввод.

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

Например, если вы хотите перезагрузить драйвер ASP, в списке, который вы указали на шаге 4, Axperf.ini является INI-файлом для драйвера ASP ( axperf.ini:drivername=ASP ). Чтобы перезагрузить драйвер ASP, введите в командную команду lodctr axperf.ini и нажмите ввод.

Повторите шаг 5 для каждого INI-файла в списке.

Restart your computer.

Чтобы перестроить все счетчики производительности, в том числе и сторонние, в Windows Server, введите следующие команды в командной области: Нажмите ввод после каждой команды.

  • /R является верхним регистром. Для успешного выполнения этой команды на компьютере должны быть права администратора.
  • На компьютере с 32-битным выпуском Windows эта команда является стандартным методом восстановления строк и сведений реестра счетчиков производительности с помощью имени Lodctr /R: файла.

Windows Server перестраивать все счетчики, так как считывает все INI-файлы в папке для C:\Windows\inf\009 английской операционной системы.

  • Если вы работаете с продуктом кластера или центра обработки данных, необходимо обновить список счетчиков на узле. Это необходимо сделать после выполнения действий, выполняемых в статье «Повторное добавление extensible counters for both base counters and extensible counters».
  • В системах, где запущены приложения, добавляя собственные счетчики производительности, такие как Exchange или SQL Server, INI-файл, используемый для загрузки счетчика производительности, может не быть расположен %Systemroot%\System32 в . Эти INI-файлы обычно находятся в структуре папок приложений.
  • При отображении сообщения об ошибке библиотеки производительности при использовании предыдущих действий может потребоваться выгрузить и перезагрузить библиотеки динамических ссылок IIS.
  • Если при запуске приложения .NET Framework по-прежнему возникают проблемы, см. раздел «Переустановка настраиваемой сборки .NET Framework счетчиков производительности».

Переустановка настраиваемой сборки .NET Framework счетчиков производительности

Если после выполнения перечисленных здесь процедур у вас по-прежнему возникают проблемы при запуске приложения .NET Framework, может потребоваться перестроить счетчики производительности для пользовательского приложения .NET Framework. Для этого используйте параметр в средстве установщика /i .NET Framework (Installutil.exe). Необходимо знать имена файлов DLL, которые создают счетчики производительности.

Если вы выполните эти процедуры и удалите счетчики из реестра для всех служб, установленных в системе, где установлен Microsoft System Center Operations Manager 2007, может быть разбит сервер управления. Счетчики для службы config, службы SDK и модулей записи базы данных не предоставляются в виде extensible counters in INI files. Вместо этого они регистрируются во время установки. Поэтому при попытке запустить System Center Operations Manager 2007 может появиться сообщение об ошибке, аналогичное следующему примеру, так как отсутствуют счетчики производительности:

Тип события: Ошибка
Источник события: служба SDK OpsMgr
Категория события: нет
ИД события: 26380
Дата: дата
Время: время
Пользователь: Н/А
Компьютер: MOM
Описание: сбой службы SDK System Center Operations Manager из-за необученного исключения.

Чтобы устранить эту проблему в System Center Operations Manager 2007, необходимо переустановить сборки .NET Framework, которые создали счетчики производительности. Для этого используйте параметр средства установщика .NET Framework (Installutil.exe), чтобы переустановить /i следующие сборки:

  • Microsoft.Mom.ConfigService.dll
  • Microsoft.Mom.Sdk.ServiceDataLayer.dll
  • Microsoft.Mom.DatabaseWriteModules.dll
  • Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

Например, в командной подсказке введите следующие команды и нажмите ввод после каждой команды:

Для успешного выполнения этих команд на компьютере должны быть права администратора.

Оцените статью