В этой статье мы рассмотрим особенности использования встроенных счетчиков производительности 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).
Слева направо двигается линия в реальном времени и отображает график загрузки процессора, на котором можно увидеть, как всплески, так и постоянную нагрузку.
Например, вам нужно посмотреть загрузку процессора виртуальными машинами и самим 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 [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 — не запрашивать скрытую копию письма.
Каждый опытный сисадмин знает, что лучший показатель ухудшения быстродействия 1С, это главный бухгалтер, движущийся в сторону ИТ отдела со скоростью, превышающей 1.1 м/с. Но только мудрейшие из них настраивают сбор счетчиков, чтобы эта встреча не застала их врасплох. Об этом и поговорим под катом…
Эпиграф:
Существуют две причины, по которым может тормозить компьютер:
1. Вирус.
2. Антивирус.
© советы бывалых сисадминов
Не ошибусь, если скажу, что каждый офисный админ сталкивался с вопросом: Почему тормозит 1С?
И опять же не ошибусь, если первое что он(а) при этом сделает, это откроет диспетчер задач.
Более продвинутые, конечно настроят сбор счетчиков Performance Monitor (Zabbix в данном контексте примерно то же самое).
Тем более, что инструкций, чек-листов по настройке более чем достаточно. Это то и пугает.
Попробую предложить вам обзор основных и свою компиляцию.
Внимание!
Название счетчиков отличается не только в зависимости от языка операционной системы, но и от ее редакции.
Добавим к этому видение и ошибки авторов публикаций и поймем, что простой копипаст может не сработать.
В случае же perfmon это усугубится тем, что никаких ошибок при создании счетчиков в командной строке вам выдано не будет, просто они не будут собираться.
Для того, чтобы увидеть список всех счетчиков производительности, имеющихся на текущем компьютере нужно в командной строке выполнить
- typeperf -q [object] выведет список всех счетчиков
- typeperf -qх [object] выведет список всех счетчиков по экземплярам оборудования, например отдельно для дисков А: и С:
Где необязательный параметр [object] это фильтр по виду счетчиков, например PhysicalDisk
Этот вывод можно переадресовать в файл и далее уже из него выбирать необходимое
typeperf -qx -y -o counters.txt
В дальнейшем, чтобы получить сводную статистику нужно заменить в случае ключа -qx имя конкретного экземпляра на (_Total), а чтобы получить статистику для каждого экземпляра отдельно на (*)
Например:
\PhysicalDisk(_Total)\Current Disk Queue Length
\PhysicalDisk(*)\Current Disk Queue Length
Рекомендуемый мной путь, это создать bat файл из 3 строк.
logman create counter 1C_counter -f bincirc
logman update counter 1C_counter -cf assembled.txt
logman update counter 1C_counter -si 15 -v mmddhhmm
А в файл assembled.txt добавлять названия счетчиков. По одному на строку. Рабочий и рекомендуемый мной пример для Windows Server 2012 R2 ENG будет внизу.
список под спойлером
\Processor(_Total)\% Processor Time
\Processor(_Total)\% User Time
\Processor(_Total)\% Privileged Time
\Memory\Available MBytes
\Memory\Pages/sec
\Memory\% Committed Bytes In Use
\Paging File(*)\% Usage
\System\Context Switches/sec
\System\Processor Queue Length
\System\Processes
\System\Threads
\PhysicalDisk(_Total)\Current Disk Queue Length
\PhysicalDisk(*)\Current Disk Queue Length
\PhysicalDisk(_Total)\Avg. Disk sec/Read
\PhysicalDisk(_Total)\Avg. Disk sec/Write
\Network interface(_Total)\Bytes Total/sec
\Network interface(_Total)\Current Bandwidth
\Process(1cv8)\% Processor Time
\Process(1cv8)\Private Bytes
\Process(1cv8)\Virtual Bytes
\Process(ragent)\% Processor Time
\Process(ragent)\Private Bytes
\Process(ragent)\Virtual Bytes
\Process(rphost)\% Processor Time
\Process(rphost)\Private Bytes
\Process(rphost)\Virtual Bytes
\Process(rmngr)\% Processor Time
\Process(rmngr)\Private Bytes
\Process(rmngr)\Virtual Bytes
\Process(sqlservr)\% Processor Time
\Process(sqlservr)\Private Bytes
\Process(sqlservr)\Virtual Bytes
\SQLServer:General Statistics\User Connections
\SQLServer:General Statistics\Processes blocked
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:Buffer Manager\Page life expectancy
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Compilations/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec
\SQLServer:Access Methods\Page Splits/sec
\SQLServer:Access Methods\Forwarded Records/sec
\SQLServer:Access Methods\Full Scans/sec
\SQLServer:Memory Manager\Target Server Memory (KB)
\SQLServer:Memory Manager\Total Server Memory (KB)
\SQLServer:Memory Manager\Free Memory (KB)
\SQLServer:Databases(_Total)\Transactions/sec
\SQLServer:Databases(*)\Transactions/sec
Собственно торопыжки могут дальше и не читать. Да они уже и не читают.
С остальными разберемся с рекомендациями
лучших собаководов
Начнем с изучения советов самого вендора: microsoft.com
Публикация Windows VM health
Используя этот вариант вы точно не ошибетесь, но в нем присутствуют счетчики не совсем нужные для мониторинга именно сервера 1С.
Далее, а скорее и выше, в моем топе вариантов идет рекомендация от Евгения Валерьевича Филиппова
Настольная книга 1С: Эксперта по технологическим вопросам. Издание 2
Список небольшой, но все по делу и видно, что автор его использовал в работе.
Список книги Методическое пособие по эксплуатации крупных информационных систем на платформе «1С: Предприятие 8»
А. Асатрян, А. Голиков, А. Морозов, Д. Соломатин, Ю.Федоров
еще лаконичнее, в него добавлен мониторинг 1cv8, ragent, rphost, rmngr его я вынесу в отдельный список, потому что он может и наверное не помешает при любом варианте, кроме разнесенных SQL и 1С серверов.
таблица под спойлером
«\Process(«1cv8*»)\%%Processor Time»
«\Process(«1cv8*»)\Private Bytes»
«\Process(«1cv8*»)\Virtual Bytes»
«\Process(«ragent*»)\%%Processor Time»
«\Process(«ragent*»)\Private Bytes»
«\Process(«ragent*»)\Virtual Bytes»
«\Process(«rphost*»)\%%Processor Time»
«\Process(«rphost*»)\Private Bytes»
«\Process(«rphost*»)\Virtual Bytes»
«\Process(«rmngr*»)\%%Processor Time»
«\Process(«rmngr*»)\Private Bytes»
«\Process(«rmngr*»)\Virtual Bytes»
или как вариант без разбиения
\Process(1cv8)\% Processor Time
\Process(1cv8)\Private Bytes
\Process(1cv8)\Virtual Bytes
\Process(ragent)\% Processor Time
\Process(ragent)\Private Bytes
\Process(ragent)\Virtual Bytes
\Process(rphost)\% Processor Time
\Process(rphost)\Private Bytes
\Process(rphost)\Virtual Bytes
\Process(rmngr)\% Processor Time
\Process(rmngr)\Private Bytes
\Process(rmngr)\Virtual Bytes
\Process(sqlservr)\% Processor Time
\Process(sqlservr)\Private Bytes
\Process(sqlservr)\Virtual Bytes
Список счетчиков оборудования.
Далее идет статья с ИТС Анализ загруженности оборудования для Windows Елена Скворцова и ее полная копия на kb у кого есть туда доступ, в ней подробно и с картинками описан весь процесс настройки. Для первой настройки это очень полезно.
При всей полезности и доступности статьи не покидает ощущение, что ее писали как знаменитое письмо Матроскина: «ваш сын дядя Шарик», разные люди. Например текст не совпадает с картинками, для некоторых счетчиков описаны пороговые значения, но в списке их нет, некоторые счетчики в списке двоятся, из-за этого не получится копипастом в командной строке запустить logman. Это как раз начинающих немного обескураживает.
Лирическое отступление: Не прошло и месяца с регионального тура конкурса ИТС, где один из вопросов был именно так составлен, в коде вариант ответа один, а в картинке и математически верный совсем другой. Организаторы опирались именно на корректность кода. Хотя понятно, код проверяют слабо, во всех научных книгах об этом предупреждают заранее.
Замыкают список иностранные агенты вендоры.
www.veritas.com Analyzing SQL Performance using Performance Monitor Counters
Понятно, что про 1С они и слыхом не слыхивали, но то, что серверов они видели на порядок более, это факт.
red-gate.com
SQL Server performance and activity monitoring
Что касается, счетчиков для MS SQL, то мой список был в начале публикации.
Вариантов невероятное множество как и экспертов (не факт, что сейчас один из них не съехал тихо под стол при виде его).
Впрочем, настоящий скульный админ никогда не покажет своего отношения, максимум поиграет бровями и пойдет слушать музыку сервера.
Желающие могут провести пару зимних (летних) вечеров разбирая полный список.
таблица под спойлером
— Штурман, приборы!
— Четырнадцать.
— Что четырнадцать?
— А что, приборы!?
©www.anekdot.ru
Бдительный читатель скажет: Мало собрать счетчики оборудования, надо их еще и проанализировать.
А я покажу ему вот эту таблицу.
Техническое отступление: Хотя ней выражено мнение уважаемых экспертов, относиться к нему надо с пониманием.
Например, многие вспомнят времена, когда они умоляли директора докупить планку 32 Мб в сервер упомянутой выше бухгалтерии. То же касается и скорости дисков. Эти значения устаревают.
Внимание!
Что означает словосочетание «Предельные значения». То что их превышение требует вашего внимания и сервер работает не совсем штатно по мнению собравшихся. Не более того. Более того, может быть как раз для вашего варианта работы это нормально.
Возможно у вас есть свое мнение по поводу мониторинга оборудования, приходите в комментарии, пишите свои мысли, желательно со ссылками на источники знаний.
Performance Monitor (Монитор производительности) — это мощный инструмент, который позволяет в реальном времени отслеживать и анализировать производительность Windows-системы. Данное средство предоставляет детализированные данные о работе различных компонентов сервера, таких как процессор, память, дисковые подсистемы и сеть.
Чтобы запустить интерфейс данного инструмента, откройте Server Manager, перейдите в Tools
и выберите Performance Monitor
.
В основном окне Performance Monitor находятся три основных раздела: Monitoring Tools
(Инструменты мониторинга), Data Collector Sets
(Наборы сборщиков данных) и Reports
(Отчеты).
В разделе Performance Monitor
вы можете добавить различные счётчики, которые будут отображать данные в реальном времени. Чтобы это сделать, нажмите кнопку +
(Add) на панели инструментов и в появившемся окне выберите категорию счётчиков, например, Processor, Memory
, PhysicalDisk
или Network Interface
.
Затем выберите конкретные счётчики внутри категории, такие как % Processor Time
, Available MBytes
, Disk Reads/sec
, Bytes Total/sec
. После чего нажмите Add
, затем OK
.
После добавления счётчиков вы увидите графики, которые отображают текущие значения выбранных параметров. Используйте эти данные для анализа текущей производительности и обнаружения возможных узких мест.
Создание наборов сборщиков данных
В Performance Monitor присутствует такой функционал, как набор сборщиков данных. Данная структура позволяет собирать и анализировать информацию о производительности системы. С её помощью появляется возможность определять, какие данные должны быть собраны, как часто они будут собираться и где эти данные будут сохраняться.
Для создания нового набора сборщиков данных зайдите в раздел Data Collector Sets
, щёлкните правой кнопкой мыши на User Defined
и выберите New
➝ Data Collector Set
.
Далее введите имя набора и выберите Create manually (Advanced)
. Для продолжения нажмите Next
.
Выберите Create data logs
и отметьте, например, Performance counter
. Затем нажмите Next
.
При помощи кнопки Add
выберите нужные счётчики из списка, например, Processor
➝ % Processor Time
, Memory
➝ Available MBytes
. Установите интервал выборки, например, 15 секунд, и нажмите Next
.
Укажите путь для сохранения данных и нажмите Next
.
Теперь нажмите Finish
, после чего новый набор сборщиков данных будет создан и начнёт собирать данные по заданному расписанию.
Созданный набор будет находится в разделе Data Collector Sets
➝ User Defined
. Щёлкните правой кнопкой мыши и выберите Start
для начала сбора данных, либо Stop
для остановки.
Анализ отчётов
Анализ отчётов в Performance Monitor позволяет интерпретировать собранные данные о производительности системы. С их помощью вы можете выявлять тенденции и узкие места и, как следствие, принимать меры для улучшения производительности.
Для создания отчёта в разделе Reports
выберите User Defined
, найдите ваш набор сборщиков данных и остановите его. После остановки сбора данных отчёт будет автоматически создан и доступен для просмотра. Кликните на отчёте, чтобы открыть его. Там вы сможете увидеть собранные данные в виде таблиц и графиков.
Полученные графики показывают изменения показателей производительности с течением времени. Обратите внимание на пики и падения, чтобы выявить периоды высокой нагрузки или возникновения каких-либо проблем. Сравнение нескольких счётчиков на одном графике помогает увидеть, как взаимосвязаны различные аспекты производительности.
Анализ отчётов в Performance Monitor — это важный процесс для обеспечения стабильной и эффективной работы сервера. Систематический мониторинг и анализ полученных данных позволяют выявлять и устранять проблемы на ранних стадиях. Таким образом вы сможете обеспечивать высокую производительность и надёжность вашей инфраструктуры.
Perfmon в Windows — является оснасткой консоли управления (MMC), которая предоставляет средства для анализа производительности ОС. С ее помощью можно отслеживать производительность операционной системы и оборудования в режиме Real time. Настраивать данные, выборку счетчиков, которые требуется собирать в журналах, определять пиковые значения для предупреждений и автоматических действий, создавать отчеты и просматривать данные о производительности за прошлые периоды различными способами. Обладает классическим интерфейсом MMC консоли, которая на данный момент является устаревшим инструментом для использования.
В этой статье будет рассматриваться новый функционал Windows Performance Monitor. Его интерфейс интегрирован в веб-средство управления WAC (Центр администрирования Windows) который можно скачать отсюда. Обзор WAC есть в нашей базе знаний. На данный момент это предварительная версия, содержит в себе функции готовые к оценке и тестированию. При использовании расширения «Монитор производительности» в Центре администрирования Windows используются те же данные о производительности, что и для perfmon.
После подключения к серверу, основное окно Windows Admin Center открывается на вкладке Обзор, где видны основные характеристики сервера: процессор, версия ОС, ОЗУ, объем диска и другие характеристики. Также на этом этапе можно выключить/перезагрузить сервер. Здесь же можно включить дисковые метрики, включение которых может повлиять на общую производительность системы. О чем WAC и сообщит.
На главную страницу добавили возможность ввода в домен.
- Простое удаленное управление. Можно подключаться ко всем серверам семейства Windows Server. Для подключения Центр администрирования Windows, в фоновом режиме, использует удаленное подключение PowerShell.
- Общий доступ к рабочему пространству. Возможность создавать рабочие области, которые можно сохранять и использовать на других системах. Области также можно экспортировать и импортировать в другие установки шлюза Центра администрирования. В Параметрах рабочего пространства можно указать Диапазон обновления, цветовую схему (обычную или высокую контрастность), размер шрифта.
- Поиск и подсветка. Для начала нужно выбрать последовательно: Объект, Экземпляр и счетчик, затем тип графика. Существует очень большое количество счетчиков, но их можно легко искать, используя выпадающий список. Performance Monitor также выделяет другие полезные счетчики, которые имеет смысл мониторить, например, Read Bytes/sec и Write Bytes/sec. Для каждого параметры показывается подробное описание и подсказка.
- Различные типы графиков. Можно использовать различные типы графиков, которые упрощают поиск и сравнение нужной информации в зависимости от сценария использования. Стандартный линейный график для просмотра одного или нескольких счетчиков с течением времени. График отчета будет содержать в себе табличные данные. Минимум-максимум покажет соответствующие результаты, а если выгрузить в таблицу Excel, можно использовать фильтр, и найти, например, средние значения.
Так как Windows Admin Center является новым инструментом удаленного управления, он и его компоненты еще будут развиваться и дополняться, в том числе и функционал Windows Performance Monitor.
Данный материал является переводом оригинальной статьи «MSSQLTips : Joe Gavin : Introduction to Windows Performance Monitor for SQL Server».
В данной вводной статье, мы узнаем о том, как можно использовать Windows Performance Monitor для изучения проблем с производительностью Microsoft SQL Server. Узнаем, что такое Performance Monitor и рассмотрим несколько примеров добавления счетчиков, сохранения повторно используемых шаблонов и составления отчетов по данным о производительности.
Что такое Windows Performance Monitor?
Windows Performance Monitor (далее «монитор производительности»), обычно называемый просто Perfmon, представляет собой программу Windows, используемую системными администраторами для мониторинга ряда системных областей, а также очень полезный инструмент для администраторов баз данных. Он существует со времен Microsoft Windows 3.51. Perfmon может отображать информацию в режиме реального времени или из файлов журнала для последующего просмотра.
Как монитор производительности может мне помочь?
Perfmon может отслеживать стандартные счетчики производительности (ЦП, процессорное время, память, сеть, физический диск, чтение с диска и т.д.), которые устанавливаются вместе с операционной системой Windows, а также специальные счетчики, устанавливаемые с SQL Server.
Запуск монитора производительности
Примечание. Все ниже описанные примеры выполнялись на Windows Server 2019 Standard с SQL Server 2019 Standard.
Существует несколько способов запуска монитора производительности, в том числе:
- Start > Введите «Performance Monitor» в строке поиска
- Start > «Windows Administrative Tools» > «Performance Monitor«
- Щелкните ПКМ Start > «Run» > наберите «perfmon» в строке запуска
- Клавиша «Windows» + «R» > наберите «perfmon«в строке запуска
Какой бы способ вы ни выбрали, вам будет представлен монитор производительности. Щелкните «Performance Monitor» в дереве навигации слева.
Добавление счетчиков Perfmon
Счетчик «% Processor Time» запущен по умолчанию. Нажмите на зеленый плюс на верхней панели кнопок, чтобы начать добавлять счетчики.
В списке вы увидите большое количество объектов или категорий Perfmon. И под каждым Объектом находится почти невероятное количество Счетчиков. Ничего страшного, мы просто сосредоточимся на некоторых из них.
- Прокрутите вверх, чтобы щелкнуть раскрывающийся список объекта, который вас интересует;
- Выберите Счетчик;
- При необходимости установите флажок «Show description«, чтобы получить описание Счетчика;
- Нажмите «Add«;
- Нажмите «OK«
Нажав на Счетчик, мы увидим график добавленного Счетчика и его показателей.
Мы вернулись и добавили некоторые стандартные счетчики мониторинга SQL Server таким же образом, как мы добавили Memory \ Available MBytes, и теперь у нас есть следующие запущенные объекты \ счетчики:
Perfmon Объект |
Perfmon Счетчик |
Memory |
Available MBytes |
Processor |
% Processor Time |
SQLServer:Access Methods |
Forwarded Records/sec |
SQLServer:Access Methods |
Full scans/sec |
SQLServer:Access Methods |
Page Splits / Sec |
SQLServer:Buffer Manager |
Buffer Cache hit ratio |
SQLServer:Buffer Manager |
Checkpoint Pages / Sec |
SQLServer:Buffer Manager |
Page life expectancy |
SQLServer:General Statistics |
User Connections |
SQLServer:Locks |
Average Wait Time (ms) |
SQLServer:Locks |
Lock Waits / Sec |
SQLServer:Memory Manager |
Memory Grants Pending |
SQLServer:Memory Manager |
Target Server Memory (KB) |
SQLServer:Memory Manager |
Total Server Memory (KB) |
SQLServer:SQL Statistics |
Batch Requests/Sec |
SQLServer:SQL Statistics |
SQL Compilations/Sec |
SQLServer:SQL Statistics |
SQL Re-Compilations/Sec |
Создание Data Collector Set
Добавление счетчиков немного утомительно, и очень легко случайно закрыть Perfmon и потерять то, что вы добавили. Итак, на данном этапе хорошей идеей будет сохранить счетчики, которые вы используете, в Collector Set. Это позволит вам легко вернуть их обратно после закрытия Perfmon.
- Щелкните ПКМ «Performance Monitor«;
- Выберите «New«;
- Выберите «Data Collector Set«.
- Задайте имя для Collector Set;
- Нажмите «Next«.
- Оставьте корневой каталог по умолчанию или нажмите «Browse…» для сохранения в другое расположение;
- Нажмите «Next«.
- Выберите другую учетную запись или оставьте по умолчанию;
- Нажмите «Finish«.
И вот вы под «Data Collector Sets» > «User Defined«.
Сохранение Data Collector Set в шаблоне
Теперь, когда мы сохранили Collector Set, давайте экспортируем его в шаблон. Шаблон представляет собой редактируемый XML-файл, который можно использовать на другом компьютере с Windows и который удобно иметь в своем наборе инструментов.
- Щелкните ПКМ на Collector Set;
- Выберите «Save Template…»
- Выберите каталог для сохранения шаблона;
- Укажите имя шаблона;
- Сохраните.
Открытие сохраненного шаблона Data Collector Set
Чтобы продемонстрировать открытие сохраненного шаблона в Collector Set на другом компьютере, мы удалили существующий Collector Set. Теперь мы импортируем шаблон.
- Щелкните «User Defined«;
- Выберите «New«;
- Выберите «Data Collector Set«.
- Задайте имя;
- Нажмите «Next«.
Используйте «Browse» для выбора файла.
- Перейдите к сохраненному шаблону и нажмите «Next«;
- Нажмите «Open«.
В окне создания нового Data Collector Set нажмите «Next«.
- Измените местоположение файла данных или оставьте по умолчанию;
- Нажмите «Next«.
- Измените «Run as» (необязательно);
- Выберите «Open properties for this data collector set«;
- Нажмите «Finish«.
- В окне свойств Data Collector Set перейдите на вкладку «Directory«;
- Измените каталог журналов (необязательно);
- Введите имя подкаталога;
- Введите формат даты и времени в поле «Subdirectory name format«.
(Мы выбрали MMddyyHHmmss, поэтому мы могли запускать и останавливать его по желанию, чтобы быть уверенными в новом имени файла отчета каждый раз, когда он запускался. В противном случае Коллектор не запустится с ошибкой «When attempting to Start the Data Collector Set the following system error occurred: Cannot create a file when that file already existed«.
(Нажмите стрелку вправо для всех поддерживаемых форматов.) - Нажмите «Apply«.
Мы можем добавить расписание для запуска Collector Set.
- Щелкните вкладку «Schedule«;
- Нажмите «Add«.
Это расписание будет выполняться каждый день с 14:00 до 15:00 часов
- Измените «Beginning date» (необязательно);
- Выберите «Start time«;
- Выберите дни недели для запуска и нажмите «OK«
- Вкладка «Stop Condition«;
- Отметьте «Overall duration«;
- Введите продолжительность;
- Выберите единицу времени;
- Нажмите «OK«
Существует известная проблема с Windows Server 2019 и некоторыми версиями Windows 10, из-за которой задача планировщика заданий Windows, созданная при планировании Collector Set, не запускается. Вот обходной путь для этого: «Microsoft Docs : User-defined data collector set doesn’t run as scheduled — Windows Server».
Запуск и остановка Data Collector Set
Начнем собирать данные о производительности.
- Щелкните ПКМ на «Collector Set«;
- Выберите «Start«.
Остановите Collector Set, когда будете готовы смотреть данные
- Щелкните ПКМ на «Collector Set«;
- Выберите «Stop«.
Отображение данных счетчиков
- Щелкните ПКМ на «Collector Set«;
- Выберите «Latest Report«.
Здесь мы можем увидеть наши счетчики на экране и выбрать отдельные счетчики для более подробной информации.
На этом пока всё. В следующей статье мы рассмотрим счетчики монитора производительности Windows, важные для работы SQL Server.