- Мониторинг производительности Windows Server, настройка оповещений счетчиков PerfMon
- Мониторинг производительности процессора с Perfomance Monitor
- Группы сборщиков данных в PerfMon
- Создание Alert для мониторинга загрузки CPU
- Установка на сервере системы оценки WinSAT Set the WinSAT Score on the Server
- Получение оценки ЦП средства WinSAT Obtain the WinSAT CPU score
- Получение оценки ЦП средства WinSAT To obtain the WinSAT CPU score
- Оценка производительности Windows. Утилита Winsat
- Параметры команды WinSAT
- WinSAT в Windows Server 2008
Мониторинг производительности 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 — не запрашивать скрытую копию письма.
Установка на сервере системы оценки WinSAT Set the WinSAT Score on the Server
Область применения: Windows Server 2016 Essentials, Windows Server 2012 R2 Essentials, Windows Server 2012 Essentials Applies To: Windows Server 2016 Essentials, Windows Server 2012 R2 Essentials, Windows Server 2012 Essentials
Для оптимизации разрешения потоковой передачи видео необходимо задать оценку производительности WinSAT для сервера, работающего под управлением операционной системы Windows Server Essentials. You should set the WinSAT CPU score for a server that is running the Windows Server Essentials operating system to optimize the video streaming resolution. Для этого необходимо создать и установить XML-файл, содержащий сведения об оценках WinSAT. You do this by creating and installing the .xml file that contains the WinSAT score information.
Получение оценки ЦП средства WinSAT Obtain the WinSAT CPU score
В состав предустановочного набора OPK входит программа WinServerSAT.exe, которая обнаруживает оценку ЦП средства WinSAT и помещает эти сведения в файл WinServerSAT.xml, считываемый операционной системой. You are provided a program with the OPK called WinServerSAT.exe that discovers the WinSAT CPU score and puts that information in the WinServerSAT.xml file that the operating system reads.
Получение оценки ЦП средства WinSAT To obtain the WinSAT CPU score
Скопируйте Ресаурцес\винсерверсат \ * на носитель ADK на эталонный компьютер. Copy the Resources\WinServerSAT\* in ADK media to the reference computer.
На компьютере-образце откройте окно командной строки с повышенными привилегиями. On the reference computer, open an elevated Command Prompt window.
Если папка %ProgramFiles%\Windows Server\Bin\OEM не существует, введите следующую команду и нажмите ВВОД If the %ProgramFiles%\Windows Server\Bin\OEM folder does not exist, type the following command and then press Enter.
mkdir «%ProgramFiles%\Windows Server\Bin\OEM» mkdir «%ProgramFiles%\Windows Server\Bin\OEM»
Введите следующую команду и нажмите ВВОД. Type the following command and then press Enter.
WinServerSAT.exe «%ProgramFiles%\Windows Server\Bin\OEM\WinServerSAT.xml» WinServerSAT.exe «%ProgramFiles%\Windows Server\Bin\OEM\WinServerSAT.xml»
В примере показано содержимое XML созданного файла WinServerSAT.xml. The following example shows the XML contents of the WinServerSAT.xml file that is created.
где оценка_WinSAT заменяется значением, обнаруживаемым сервером. Where WinSAT_Score is replaced with the value that is discovered on the server.
Оценка производительности Windows. Утилита Winsat
Опытные пользователи Windows помнят, что индекс оценки производительности (Windows Experience Index — WEI) впервые появился еще в Windows Vista. Индекс производительности рассчитывается на основании оценки производительности следующих подсистем компьютера: процессора, памяти, 2D графики, 3D графики и устройства хранения (жесткого диска). Для каждой из подсистем на основе результатов оценочного тестирования рассчитывается собственное значение индекса производительности, а общий индекс для всего компьютера (Base Score) равен минимальному значению среди всех подсистем.
Индекс производительности представляет собой некое число-оценку производительности системы для пользователя — Windows Experience Index (WEI). В различных версиях ОС WEI может находиться в различных диапазонах:
- Windows Vista: от 1 до 5.9
- Windows 7: от 1 до 7.9
- Windows 8: от 1 до 9.9
Оценка производительности и быстродействия компьютера осуществляется специальной утилитой – WinSAT (Windows System Assessment Tool). Данная утилита уже включена в состав ОС Vista, Windows 7, Windows 8.
WinSAT — средство для оценки производительности Windows, представляющая собой набор тестов, проверяющий различные компоненты Windows. Важно отметить, что WinSAT не является тестом application-based или синтетическим тестом. Это тест того, как Windows себя «чувствует» на конкретном железе. WinSAT содержит пять различных групп тестов, названных компанией Microsoft «оценками»:
- Оценка Direct3D. Тест на производительность GPU, генерирующий несколько кадров в секунду и показывает, насколько быстро будут работать игры на компьютере
- Оценка видео-кодирования. Тест для оценки качества воспроизведения видео высокого разрешения (кодек Windows Media HD, или другие установленные кодеки)
- Оценка графики. Оценка вашего графического акселератора, влияет на то будет ли включен Aero по умолчанию или нет ( как с помощью winsat можно включить Aero)
- Оценка устройств хранения данных
- Оценка процессора.
Отметим, что не стоит свято верить в значение индекса WEI, т.к. в случае необходимости индекс производительности Windows можно достаточно просто модифицировать. Подробности в статье Ломаем индекс производительности Windows.
Параметры команды WinSAT
Как же воспользоваться утилитой WinSAT для оценки производительности отдельной подсистемы или компьютера целиком?
Полная оценка производительности (все тесты) выполняется командной
Оценить производительность дисковой подсистемы (скорость записи/чтения на диск, длина очереди к диску и т.д.) можно командой:
Производительность последовательных операций чтения для диска C:
Производительность при произвольной записи для диска C:
Производительность CPU оценивается путем выполнения операций шифрования/расшифроваки, или копрессии/декомпрессии.
Общую оценку производительности процессора можно выполнить командой:
Подробный обзор информации о полученных результатах оценки производительности можно получить с помощью команды:
Оценить пропускную способность оперативной памяти можно с помощью теста, осуществляющего копирование большого буфера памяти из одного сектора памяти в другой.
Запустим оценку производительности системы, используемую при составлении индекса WEI. Все оценки и результаты тестирования перенаправим в файл C:\winsat.txt. Данный отчет, в отличии от значения WEI, достаточно подробный и позволяет узнать много интересного о производительности подсистем компьютера.
Пример отчета WinSAT представлен ниже.
> Command Line ‘winsat formal -v’
> Running the Formal Assessment
> DWM running… turnning DWM off
> System processor power policy saved and set to ‘max performance’
> Running: Feature Enumeration »
> Gathering System Information
> Operating System : 6.1 Build-7600
> Processor : Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz
> TSC Frequency : 2128300000
> Number of Processors : 1
> Number of Cores : 2
> Number of CPUs : 2
> Number of Cores per Processor : 2
> Number of CPUs Per Core : 1
> Cores have logical CPUs : NO
> L1 Cache and line Size : 32768 64
> L2 Cache and line Size : 2097152 64
> Total physical mem available to the OS : 2,98 GB (3я203я723я264 bytes)
> Adapter Description : ATI Radeon HD 5450
> Adapter Manufacturer : ATI Technologies Inc.
> Adapter Driver Version : 8.861.0.0
> Adapter Driver Date (yy/mm/dd) : 2011\5\24
> Has DX9 or better : Yes
> Has Pixel shader 2.0 or better : Yes
> Has LDDM Driver : Yes
> Dedicated (local) video memory : 504.426MB
> System memory dedicated as video memory : 0MB
> System memory shared as video memory : 1271.65MB
> Primary Monitor Size : 1280 X 1024 (1310720 total pixels)
> WinSAT is Official : Yes
> CPU LZW Compression 112.19 MB/s
> CPU AES256 Encryption 63.26 MB/s
> CPU Vista Compression 319.98 MB/s
> CPU SHA1 Hash 522.96 MB/s
> Uniproc CPU LZW Compression 56.15 MB/s
> Uniproc CPU AES256 Encryption 31.31 MB/s
> Uniproc CPU Vista Compression 159.77 MB/s
> Uniproc CPU SHA1 Hash 261.81 MB/s
> Memory Performance 4729.00 MB/s
> Direct3D Batch Performance 88.25 F/s
> Direct3D Alpha Blend Performance 93.79 F/s
> Direct3D ALU Performance 39.27 F/s
> Direct3D Texture Load Performance 42.21 F/s
> Direct3D Batch Performance 89.30 F/s
> Direct3D Alpha Blend Performance 106.10 F/s
> Direct3D ALU Performance 37.84 F/s
> Direct3D Texture Load Performance 39.83 F/s
> Direct3D Geometry Performance 73.83 F/s
> Direct3D Geometry Performance 146.91 F/s
> Direct3D Constant Buffer Performance 57.54 F/s
> Video Memory Throughput 2398.55 MB/s
> Dshow Video Encode Time 6.94628 s
> Media Foundation Decode Time 1.21153 s
> Disk Sequential 64.0 Read 63.00 MB/s 5.8
> Disk Random 16.0 Read 1.21 MB/s 3.4
Выше представлен далеко не весь арсенал возможностей утилиты WinSAT по оценки производительности системы. С полным списком параметров и возможностей команды можно познакомиться, воспользовавшись встроенной справкой:
Логи утилиты WinSAT находятся в каталоге C:\Windows\Performance\WinSAT, детальные результаты оценки производительности компьютера в виде .xml файлов. содержатся в каталоге C:\Windows\Performance\WinSAT\DataStore
В Windows 7 существует стандартное задание планировщика, которое запускает утилиту WinSAT каждую неделю. Задача этого задания – своевременное обновление индекса при любых изменениях конфигурации. В момент запуска данного задания может наблюдаться снижение производительности компьютера. В том случае, если индекс WEI для вас не важен, данное задание можно отключить.
WinSAT в Windows Server 2008
В состав серверных Windows Server 2008 и Windows Server 2008 R2 WinSAT не входит, однако ничего не мешает просто скопировать их с клиентской ОС на серверную.
Чтобы иметь возможность запустить WinSAT в Windows Server 2008/200 R2 достаточно скопировать два файла — WinSAT.exe и WinSATAPI.dll из каталога %windir%\System32 клиентской ОС в аналогичный каталог сервера.
Однако учтите, для x86 и x64 битных систем используются различные версии WinSAT, поэтому если серверная ОС 64-разрядная (а Windows 2008 R2 бывают только такой), понадобится версия WinSAT, например из 64 разрядной Windows 7.
Отметим, что утилита также будет работать и в Windows XP, хотя из-за разницы методиках тестирования и архитектуры системы, результаты такого тестирования нельзя будет сравнивать с результатами более новых ОС.