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

Обновлено: 01.07.2024

Анализ загруженности оборудования для Windows

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

  • Все рабочие сервера кластера 1С:Предприятия
  • Сервер СУБД
  • Клиентские рабочие станции, работающие под большой нагрузкой

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

Сбор информации по загруженности оборудования

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

Настройка сборка данных в Performance Monitor (Windows Server 2012 R2)

Для запуска Performance Monitor выберите соответствующий пункт меню раздела Administrative Tools контрольной панели Windows.

Добавьте в список наборов счетчиков (Data Collector Sets) новый набор (User Defined – пользовательский):


Настройка будет осуществляться вручную – в диалоговом окне нужно выбрать соответствующий пункт и нажать «Далее»:


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


На следующем шаге выбираются сами счетчики, которые будут входить в набор.



Мы рекомендуем в обязательном порядке собирать данные по следующим счетчикам:

"\Processor(_Total)\Interrupts/sec"
"\LogicalDisk(_Total)\% Free Space"
"\Memory\Available Mbytes"
"\PhysicalDisk(_Total)\Avg. Disk Queue Length"
"\PhysicalDisk(_Total)\Avg. Disk Sec/Read"
"\PhysicalDisk(_Total)\Avg. Disk Sec/Write"
"\Processor(_Total)\% Idle Time"
"\Processor(_Total)\% Processor Time"
"\Processor(_Total)\% User Time"
"\System\Context Switches/sec"
"\System\File Read Bytes/sec"
"\System\Context Switches/sec"
"\System\File Read Bytes/sec"
"\System\File Write Bytes/sec"
"\System\Processes"
"\System\Processor Queue Length"
"\System\Threads"

Состав счетчиков может меняться в зависимости от роли компьютера. Например, для сервера приложений 1С:Предприятие к перечисленным выше стоит добавить показатели работы процессов 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"

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

Рекомендуемая частота получения значений для рабочей системы – один раз в 15 секунд. В нагрузочных тестах рекомендуем собирать счетчики чаще, например, один раз в 1 секунду, т.к. длительность каждого непрерывного нагрузочного теста обычно не превышает десятка часов, а анализировать более детальные данные удобнее.По окончании выбора нажмите «Далее», укажите директорию хранения логов, при необходимости – пользователя, от имени которого будет запускаться процесс сборщика, и сохраните набор.

Откройте для дальнейшего редактирования его свойства (например, кликнув по нему в списке двойным щелчком мыши):


Можно выбрать формат файла логирования: бинарный удобен, если планируется анализировать графические данные, CSV – если планируется как-либо программно обрабатывать данные. В данном примере выбран бинарный.


На закладке «Files» можно настроить шаблон имени файлов и режим записи. Для сохраненного набора также можно настроить расписание и задать ограничения и условия окончания сбора.



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

После сохранения можно запустить замер (при помощи кнопки Start контекстного меню).

Команда создания набора будет выглядеть так:

logman create counter 1C_counter -f bincirc -c "\Processor(_Total)\Interrupts/sec" "\LogicalDisk(_Total)\% Free Space" "\Memory\Available Mbytes" "\PhysicalDisk(_Total)\Avg. Disk Queue Length" "\PhysicalDisk(_Total)\Avg. Disk Sec/Read" "\PhysicalDisk(_Total)\Avg. Disk Sec/Write" "\Processor(_Total)\% Idle Time" "\Processor(_Total)\% Processor Time" "\Processor(_Total)\% User Time" "\System\Context Switches/sec" "\System\File Read Bytes/sec" "\System\Context Switches/sec" "\System\File Read Bytes/sec" "\System\File Write Bytes/sec" "\System\Processes" "\System\Processor Queue Length" "\System\Threads" -si 5 -v mmddhhmm

Анализ сохраненного замера

Для просмотра данных откройте бинарный файл замера .blg, по умолчанию Windows откроет такой тип при помощи Performance Monitor:


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


Интерес представляют, как правило, среднее значение и «пики» - максимум / минимум в зависимости от смысла счетчика.

Ниже в таблице приведены описания и предельные значения некоторых из них:

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

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

Performance Monitor

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

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

Ну а обычные пользователи, входящие в группу 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 можно:

Настройки, вкладка General

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

Настройки, вкладка Source

Настройки, вкладка Data

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

Настройки, вкладка Graph

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

Настройки, вкладка Appearance

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

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

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

Вот так выглядит в браузере 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

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

Заключение

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

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

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

Начнем с процессора (ЦПУ). Все потоки выполнения программ потребляют ресурсы процессора. Эти потоки могут быть частью процессов пользовательского режима либо ядра операционной системы.

Доступные в Windows счётчики производительности позволяют определить, сколько времени обработки ЦПУ занимают потоки и другие исполняемые единицы работы. Эти метрики утилизации процессора позволяют определить, какие приложения «в ответе» за потребление ресурсов ЦПУ.

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

В 32-битных системах виртуальная память ограничена четырьмя Гигабайтами, разделёнными на 2 Гб общего адресного пространства и 2 Гб частного адресного пространства для каждого процесса. Однако большой объём физической памяти не помогает предотвратить нехватку виртуальной, и может даже привести к фатальным сбоям в случае утечек памяти, когда приложение не освобождает уже ненужные участки памяти.

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

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

От памяти переходим к дисковой подсистеме, и расскажем про наиболее важные счетчики Ввода/Вывода (I/O). Сперва попытаемся объяснить на пальцах основные понятия тем, кто незнаком с данной темой.

При использовании комплексных систем хранения информации, таких как контроллеры массива или RAID, ОС не видит напрямую аппаратных характеристик физического диска (количество дисков, их скорость, время доступа, скорость вращения шпинделя, битовая плотность, а также объём внутреннего буфера памяти). А тем временем эти параметры могут серьёзно повлиять на производительность. Продвинутые возможности, вроде очереди команд или буфера памяти, могут повысить быстродействие на 25-50%.

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

Основные счётчики Ввода/Вывода:

    : Указывает на потенциальные узкие места физического диска : Показатель использования физического диска : Помогает понять, является ли физический диск потенциальным узким местом : Указывает на потенциальные узкие места диска (только вместе с другими счётчиками) : Говорит о возможной фрагментации : Отображает объём незанятого пространства на логическом диске в Мб

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

Основные сетевые счетчики:

    : Показатель общей пропускной способности : Отражает общую утилизацию сервера с сетевой точки зрения : Индикатор нагрузки по IP протоколу : Отражает количество успешных соединений по TCP протоколу : Указывает количество полученных TCP сегментов данных : Показывает процент времени, которое процессор тратит на обслуживание прерываний от устройств (например, от сетевой карты)

Когда необходимо добиться максимального быстродействия и стабильности работы Windows Server, следует обратить внимание на встроенные счетчики производительности и средства анализа.

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

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

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

Системный подход и определение базового уровня

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

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

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

Перед тем как перейти к исследованию счетчиков производительности, следует пояснить необходимость выбора базового уровня. Базовый уровень производительности представляет собой такой уровень быстродействия сервера, когда система работает с нагрузкой, и операции выполняются с приемлемой для решения задачи скоростью. Базовый уровень производительности определяется при мониторинге и сохранении журналов производительности сервера во время нормальной работы сервера. Я предпочитаю отслеживать уровень производительности в течение всего нормального рабочего дня организации, например с 9:00 до 18:00. После того как журналы производительности созданы, можно открыть инструментарий анализа производительности системы и просмотреть моменты наибольшей загруженности системы. Если производительность сервера в эти моменты была приемлемой, можно сделать вывод, что сервер обладает достаточной производительностью для решаемого класса задач.

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

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

Средство мониторинга надежности и производительности Reliability and Performance Monitor в Windows Server 2008 и инструмент для измерения производительности системы System Performance в Windows Server 2003 R2 предоставляют администраторам важные счетчики производительности, отражающие работу главных компонентов сервера. Средство измерения производительности системы часто называют системным монитором, хотя в заголовке его окна написано Performance. Основные счетчики производительности центрального процессора предоставляются объектами Processor и Process. Наиболее информативными являются счетчики процента загруженности процессора, % Processor Time, процента работы в пользовательском режиме, % User Time, и процента работы в привилегированном режиме, % Privileged Time. Предоставляемые объектом Processor, эти счетчики позволяют отслеживать как загрузку отдельных процессоров сервера, так и общую загрузку всех процессоров (см. экран 1). Эти же счетчики доступны через объект Process, и в этом случае они позволяют определить использование процессоров отдельными или всеми процессами, выполняемыми на сервере.


Если вы видите, что счетчик процента загруженности процессора для объекта Processor имеет высокое значение, вы можете с помощью объекта Process настроить мониторинг для каждого отдельного процесса. Это позволит определить, какие из процессов требуют больше всего процессорного времени. Возможно, некоторые процессы могут быть перенесены на другие серверы, а могут даже обнаружиться лишние процессы, которые можно остановить без ущерба для работы сервера. Просто удивительно, как много бывает на сервере Windows неиспользуемых процессов, которые могут замедлять работу сервера, поскольку ядро Windows вынуждено тратить часть ресурсов на управление этими процессами. Примерами таких процессов являются неиспользуемые приложения автозапуска и службы и дополнительные компоненты приложений, выполняемые в отдельных процессах.

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

Счетчики процента работы в пользовательском режиме (% User Time) и процента работы в привилегированном режиме (% Privileged Time) позволяют по отдельности отслеживать время процессов в пользовательском режиме и режиме ядра. Они могут помочь определить, где находится источник проблем — в пользовательских приложениях или в самой операционной системе. При этом необходимо учитывать архитектуру Windows. Большинство операций выполняется в режиме ядра, поэтому часто более 70% операций может выполняться в режиме ядра или привилегированном режиме.

Счетчики памяти

Наиболее важные счетчики использования памяти с точки зрения общего анализа быстродействия сервера находятся в объекте памяти Memory (экран 2).


По-моему, наиболее информативными являются счетчики доступной памяти в килобайтах, Available Kbytes и обмена страниц в секундах, Pages/sec. Счетчик доступной памяти в КБ показывает значения в более удобном виде, чем слишком детальный Available Bytes и слишком грубый счетчик Available Mbytes.

Счетчик Pages/sec показывает количество страниц виртуальной памяти, которые считываются или записываются в секунду. Для большинства систем размер страницы составляет 4 Кбайт, так что если взять показания данного счетчика, умноженные на 4, то получим представление об объеме данных, перемещаемом между оперативной памятью и дисковой системой за секунду.

Счетчики жестких дисков

Счетчики жестких дисков разделены на два объекта для логического диска LogicalDisk и физического диска PhysicalDisk. Эти счетчики очень близки по смыслу, но различаются способом идентификации дисков. Логический диск определяет диск по букве диска, а физический диск — по номеру (диск 0). Оба объекта показывают одинаковую информацию для одного выбранного счетчика. Но если требуется отслеживать активность для всех разделов физического диска, следует использовать объект физического диска PhysicalDisk. Основные счетчики, на которые следует обратить внимание, — это средняя длина очереди диска Average Disk Queue Length, скорость обмена с диском в байт/с Disk bytes/sec и свободной памяти в мегабайтах Free Megabytes.

Счетчик Average Disk Queue Length показывает, успевает ли накопитель отработать все запросы от выполняющихся процессов. Обычно в качестве порогового значения устанавливают длину очереди, состоящую из двух элементов. Если среднее число элементов в очереди более двух, это может служить симптомом повышенной нагрузки на дисковую систему. Этот счетчик тоже следует сопоставлять с базовым уровнем. Например, если за базовый уровень выбрано значение 2,3 элемента в очереди, и быстродействие системы при этом приемлемое, то, когда в будущем при возникновении проблем с общей производительностью сервера дисковая подсистема покажет те же или даже более низкие уровни загрузки, источник проблемы, скорее всего, следует искать в другом месте. Нормальное быстродействие определяется статистически, а какое быстродействие считать хорошим или плохим — понятие относительное, зависящее от исполняемых приложений и требований, которые пользователи предъявляют к системе.

Счетчик Disk bytes/sec может показать, соответствует ли работа диска заявленным производителем характеристикам. Иногда диски, для которых заявлена определенная скорость работы, в действительности могут работать с меньшей скоростью. Данный счетчик позволяет это обнаружить. Часто для решения проблемы снижения производительности дисковой системы по сравнению с заявленной достаточно обновить драйвер контроллера диска.

В сущности, Free Megabytes не является счетчиком производительности, но его можно использовать для прогнозирования потребления дискового пространства. Например, если ежемесячно измерять объем свободного пространства для каждого тома, можно определить скорость увеличения объема, занимаемого данными на диске. Журнал потребления дискового пространства поможет прогнозировать сроки, когда потребуется перенос устаревших данных в архив или увеличение объема дискового пространства.

Счетчики сетевых интерфейсов

Наконец, рассмотрим счетчики сетевых интерфейсов, доступ к которым предоставляется объектом Network Interface. Два главных счетчика — общей скорости в байт/с Bytes Total/sec и длины очереди вывода Output Queue Length. Счетчик Bytes Total/sec следует сопоставлять с принятым базовым уровнем. Если сетевой обмен значительно возрастает по сравнению с базовым уровнем, обычно это означает, что нагрузка на сервер существенно возросла по сравнению с нагрузкой, которая наблюдалась при определении базового уровня. Но это может также служить индикатором сетевой атаки или показывать необходимость разгрузки некоторых процессов. Счетчик Output Queue Length поможет определить, что требуется предпринять. Если среднее значение счетчика более двух, это значит, что сетевой интерфейс (или пропускная способность сетевой инфраструктуры) не справляется с передачей данных, предоставляемых сервером. Другими словами, сервер выдает данные с большей скоростью, чем сетевой интерфейс в состоянии передать.

Сохранение значений счетчиков

Теперь, когда рассмотрены 10 основ­ных счетчиков быстродействия, которые помогают следить за главными факторами, определяющими быстродействие сервера, рассмотрим подробнее, каким образом эти счетчики можно получить и сохранить. Ниже приведены инструкции, как получить данные этих счетчиков с помощью инструмента Performance для Windows 2003 R2 или Windows 2003.

  1. Запустите инструмент Perfor­mance, выбрав Start, All Programs, Administrative Tools, Performance. Вы увидите, что счетчики Pages/sec, Avg. Disk Queue Length, и % Processor Time уже загружены.
  2. Для добавления счетчиков нажмите кнопку со значком плюс (или клавишами Ctrl+I).
  3. По умолчанию выбран объект Processor. В разделе выбора счетчиков Select counters from list выделите % Privileged Time и нажмите Add.
  4. При необходимости прокрутите список, выделите счетчик % User Time и нажмите Add.
  5. Выберите объект логического диска LogicalDisk и добавьте счетчики Disk bytes/sec и Free Megabytes, как описано в п. 3 и 4.
  6. Выберите объект Memory и добавьте счетчик Available Kbytes.
  7. Наконец, выберите объект Net­work Interface и добавьте счетчики Bytes Total/sec и Output Queue Length.

После выбора нужных счетчиков нажмите OK; графики должны иметь вид, как на экране 3.

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

Запустите инструмент Performance, как описывалось ранее.

  1. В левой панели окна Performance разверните узел журналов и оповещений производительности Performance Logs and Alerts.
  2. Щелкните правой кнопкой мыши на Counter Logs и выберите изменение настроек журнала New Log Settings.
  3. Введите имя журнала, например «Базовый_уровень_1».
  4. На вкладке General нажмите кнопку добавления счетчиков Add Counters и добавьте счетчики, значения которых требуется сохранить.
  5. Перейдите на вкладку журналов Log Files и выберите удобный для анализа формат файла журнала. Я рекомендую использовать текст с разделителем запятыми (CSV), как наиболее удобный для анализа в Microsoft Excel.
  6. На вкладке расписания Schedule укажите время для автоматического запуска и остановки журнала или выберите запуск вручную. Эту операцию можно выполнить после того, как журнал уже создан.
  7. Нажмите ОК.
  8. Если система запросит создание папки для журналов, нажмите Yes.

Таким образом, журналы производительности настроены. Подготовив журнал для сохранения описанных в данной статье 10 счетчиков производительности, вы получите хорошую основу для определения базового уровня. Применяйте эти настройки для сбора показателей, соответствующих нормальной работе систем. Если вдруг пользователи начнут жаловаться на недостаточную производительность, вы сможете сравнить текущие журналы со старыми данными, когда все было хорошо. На экране 4 представлены два линейных графика Excel 2007, построенных из файлов CSV инструмента Performance.

Измеряйте быстродействие системы относительно базового уровня

Инструмент Performance предоставляет счетчики, которые могут использоваться для измерения быстродействия аппаратного обеспечения системы относительно рекомендуемых значений или базового уровня. Главным условием успешного использования инструмента является правильный выбор счетчиков производительности. Следует иметь в виду, что при установке серверных приложений Microsoft (Microsoft SQL Server, Microsoft Exchange Server, Microsoft IIS) в систему добавляются новые счетчики производительности для установленного приложения.

Читайте также: