- Счетчики производительности сети Network-Related Performance Counters
- Использование ресурсов Resource Utilization
- Потенциальные проблемы с сетью Potential Network Problems
- Производительность объединения на стороне получения (RSC) Receive Side Coalescing (RSC) performance
- Мониторинг производительности Windows Server, настройка оповещений счетчиков PerfMon
- Мониторинг производительности процессора с Perfomance Monitor
- Группы сборщиков данных в PerfMon
- Создание Alert для мониторинга загрузки CPU
Счетчики производительности сети Network-Related Performance Counters
Применяется к: Windows Server (Semi-Annual Channel), Windows Server 2016 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2016
В этом разделе перечислены счетчики, относящиеся к управлению производительностью сети, и приведены следующие разделы. This topic lists the counters that are relevant to managing network performance, and contains the following sections.
Использование ресурсов Resource Utilization
Следующие счетчики производительности относятся к использованию сетевых ресурсов. The following performance counters are relevant to network resource utilization.
IPv4, IPv6 IPv4, IPv6
Получено датаграмм/с Datagrams Received/sec
Отправлено датаграмм/с Datagrams Sent/sec
TCPv4, TCPv6 TCPv4, TCPv6
Получено сегментов/с Segments Received/sec
Отправлено сегментов/с Segments Sent/sec
Передано сегментов в секунду Segments Retransmitted/sec
Сетевой интерфейс (*), сетевой адаптер ( * ) Network Interface(*), Network Adapter(*)
Полученных байтов/с Bytes Received/sec
Отправленных байтов/с Bytes Sent/sec
Получено пакетов/сек Packets Received/sec
Отправлено пакетов/сек Packets Sent/sec
Вывод длины очереди Output Queue Length
Этот счетчик представляет собой длину очереди исходящих пакетов ( в пакетах ) . This counter is the length of the output packet queue (in packets). Если это значение превышает 2, происходит задержка. If this is longer than 2, delays occur. Вы должны найти узкое место и устранить ее, если можете. You should find the bottleneck and eliminate it if you can. Так как NDIS помещает запросы в очередь, эта длина всегда должна быть равна 0. Because NDIS queues the requests, this length should always be 0.
Сведения о процессоре Processor Information
% загруженности процессора % Processor Time
Поставлено в очередь DPC/с DPCs Queued/sec
Этот счетчик представляет собой среднюю скорость добавления DPC в очередь DPC логического процессора. This counter is an average rate at which DPCs were added to the logical processor’s DPC queue. Каждый логический процессор имеет собственную очередь DPC. Each logical processor has its own DPC queue. Этот счетчик измеряет скорость, с которой DPC добавляется в очередь, а не число DPC в очереди. This counter measures the rate at which DPCs are added to the queue, not the number of DPCs in the queue. В нем отображается разница между значениями, которые были замечены в двух последних примерах, деленная на длительность интервала выборки. It displays the difference between the values that were observed in the last two samples, divided by the duration of the sample interval.
Потенциальные проблемы с сетью Potential Network Problems
Следующие счетчики производительности важны для возможных проблем с сетью. The following performance counters are relevant to potential network problems.
Сетевой интерфейс (*), сетевой адаптер ( * ) Network Interface(*), Network Adapter(*)
Отклонено входящих пакетов Packets Received Discarded
Ошибки входящих пакетов Packets Received Errors
Отклонено исходящих пакетов Packets Outbound Discarded
Ошибки исходящих пакетов Packets Outbound Errors
WFPv4, WFPv6 WFPv4, WFPv6
- Отклоненных пакетов/с Packets Discarded/sec
UDPv4, UDPv6 UDPv4, UDPv6
- Полученных датаграмм с ошибками Datagrams Received Errors
TCPv4, TCPv6 TCPv4, TCPv6
Ошибки подключения Connection Failures
Сбросов подключений Connections Reset
Политика качества обслуживания сети Network QoS Policy
Пакетов отброшено Packets dropped
Отброшенных пакетов/с Packets dropped/sec
Активность сетевого адаптера для каждого процессора Per Processor Network Interface Card Activity
Нехватка появления ресурсов в секунду Low Resource Receive Indications/sec
Пакетов, полученных низкими ресурсами/с Low Resource Received Packets/sec
Загрузочный процессор Microsoft WinSock Microsoft Winsock BSP
Удалены датаграммы Dropped Datagrams
Сброшено датаграмм/с Dropped Datagrams/sec
Число отклоненных подключений Rejected Connections
Отклонено подключений в секунду Rejected Connections/sec
Производительность объединения на стороне получения (RSC) Receive Side Coalescing (RSC) performance
Следующие счетчики производительности важны для производительности RSC. The following performance counters are relevant to RSC performance.
Сетевой адаптер (*) Network Adapter(*)
Активные подключения RSC TCP TCP Active RSC Connections
Средний размер пакета TCP RSC TCP RSC Average Packet Size
Объединенных пакетов TCP RSC/с TCP RSC Coalesced Packets/sec
Исключений TCP RSC/с TCP RSC Exceptions/sec
Ссылки на все разделы данного руководства см. в разделе Настройка производительности сетевой подсистемы. For links to all topics in this guide, see Network Subsystem Performance Tuning.
Мониторинг производительности 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), задаются для них параметры и периодически просматриваются.
Чтобы создать группу сбора данных, нужно нажать на разделе 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) следующий код:
-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 — не запрашивать скрытую копию письма.