Администрирование в Windows

Измерение ритма работы сервера

Стивен Чой (Steven Choy)

 

Краткий обзор.

  • Настройка монитора производительности
  • Рекомендации по измеряемым параметрам и частоте измерений
  • Обзор основных счетчиков и рекомендации по поиску информации

Cодержание

Представление результатов в удобочитаемой форме
Что и когда измерять
Узкое место, связанное с жестким диском
Узкое место, связанное с памятью
Узкое место, связанное с процессором
Узкое место, связанное с сетью
Узкое место, связанное с процессами
Заключение

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

производительности, удобное средство, встроенное в Windows®, поможет диагностировать проблему.

Чтобы получить доступ к монитору производительности, наберите «perfmon» в командной строке или выберите в меню «Администрирование» пункт «Производительность» или «Монитор надежности и производительности» (в Windows Vista® и Windows Server® 2008). Для добавления счетчиков производительности и объектов наблюдения просто щелкните знак «плюс» и сделайте выбор из множества возможных вариантов.

Итак, каким образом измеряется ритм работы сервера? Существует более 60 базовых объектов производительности, и каждый объект содержит множество счетчиков. В этой статье будут обсуждаться счетчики, определяющие основные показатели сервера. Будут описаны типичные интервалы между измерениями, которые наиболее часто используются инженерами службы технической поддержки Майкрософт (Microsoft® Service Support) для поиска и устранения неполадок, влияющих на производительность.

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

Представление результатов в удобочитаемой форме

Прежде чем углубиться в анализ счетчиков, представляющих основные показатели серверов, я поделюсь двумя приемами, облегчающими измерение основных показателей серверов с помощью монитора производительности. Отмечу, что эти приемы не являются необходимыми в Windows Vista и Windows Server 2008, но, если вы запускаете монитор производительности на предыдуших версиях Windows, эти две настройки могут оказаться очень удобными.

Во-первых, можно избавиться от всех отвлекающих внимание избыточных измерений, ухудшающих графическое представление тенденции изменения показателей. В Windows Vista and Windows Server 2008 монитор производительности в состоянии отображать в графическом представлении до 1000 точек данных. В предыдущих версиях Windows предельное число точек данных составляло 100. Если точек более 100, монитор производительности формирует «сегменты» точек данных. Сегментирование представляется вертикальной линией, указывающей минимальное, среднее и максимальное число точек измерения, включаемых в сегмент.

Как можно судить по графику на рис. 1, трудно определить линию тренда при одновременном отображении такого большого количества данных. Из графика на рис. 2 видно, насколько легче быстро взглянуть на данные, если отключена посторонняя визуальная информация. Подробнее об отключении этих вертикальных линий рассказано в статье базы знаний на веб-странице по адресу support.microsoft.com/kb/283110.

fig01.gif

Рис. 1 Показатели производительности, отображаемые с посторонними сегментами и в отсутствие запятых (щелкните изображение для его увеличения)

fig02.gif

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

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

Возможно, это покажется неважным, но взгляните на рис. 1, на котором отображаются счетчики производительности без запятых, а потом посмотрите на рис. 2, где счетчики отображены с запятыми. Я считаю, что в последнем случае считывать данные гораздо легче. Для получения некоторых простых рекомендаций по добавлению запятых-разделителей в счетчики производительности операционной системы Windows XP воспользуйтесь статьей базы знаний на веб-странице по адресу support.microsoft.com/kb/300884.

Что и когда измерять

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

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

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

Пятнадцатиминутный интервал является хорошим окном для установления базовых показателей во время нормальной работы. 15-секундный интервал между измерениями рекомендуется установить, если среднее время между неполадками составляет приблизительно четыре часа. Если неполадка возникает через восемь или более часов, интервал между измерениями должен быть не менее пяти минут; в противном случае будет получен крайне объемный файл журнала, что усложняет анализ данных.

Узкое место, связанное с жестким диском

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

Обратите внимание на то, что, если объекты диска не были включены на вашем сервере, для их включения потребуется использовать средство командной строки Diskperf. Кроме этого, обратите внимание, что показатель «Процент активности диска» может превышать 100 процентов, и вследствие этого,я предпочитаю использовать «Процент времени бездействия», «Среднее время чтения с диска (сек)» и «Среднее время записи на диск (сек)», чтобы получать более точную картину занятости жесткого диска. Подробнее о показателе «Процент активности диска» рассказано в статье базы знаний на веб-странице по адресу support.microsoft.com/kb/310067.

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

Логический диск\Процент свободного пространства Измеряет долю свободного места на выбранном логическом диске. Обратите внимание на то, что если падение его значения ниже 15 процентов, то возникает опасность нехватки свободного места для хранения важных файлов операционной системы. Одно из очевидных решений в этом случае состоит в добавлении места на диске.

Физический диск\Процент времени бездействия Измеряет долю интервала между измерениями, в течение которой диск бездействовал. Если значение счетчика опускается ниже 20 процентов, это означает, что дисковая система перегружена. Можно обдумать замену текущей дисковой системы на более быстродействующую.

Физический диск\Среднее время чтения с диска (сек) Измеряет среднее время в секундах, требуемое для чтения данных с диска. Если число превышает 25 миллисекунд (мс), это означает, что дисковая система испытывает задержку при чтении данных с диска. Для критически важных серверов, где размещаются SQL Server® и Exchange Server, приемлемый порог гораздо ниже, приблизительно 10 мс. Наиболее логичным решением в этом случае будет замена текущей дисковой системы на более быстродействующую.

Физический диск\Среднее время записи на диск (сек) Измеряет среднее время в секундах, требуемое для чтения данных с диска. Если число превышает 25 миллисекунд (мс), это означает, что дисковая система испытывает задержку при выполнении записи на диск. Для критически важных серверов, на которых размещаются SQL Server® и Exchange Server, приемлемый порог гораздо ниже, приблизительно 10 мс. Наиболее логичным решением в этом случае будет замена текущей дисковой системы на более быстродействующую.

Физический диск\Средняя длина очереди диска Указывает, сколько операций ввода/вывода ожидают, когда жесткий диск станет доступным. Если это значение превышает число дисков плюс два, значит, возможно, сам диск является узким местом.

Память\Байт кэш-памяти Указывает объем памяти, используемый для кэша файловой системы. Если это значение превышает 200 МБ, возможно, узкое место связано с диском.

Узкое место, связанное с памятью

Недостаток памяти вызывается обычно недостаточным объемом ОЗУ, утечкой памяти или параметром управления памятью, помещенным в файл boot.ini. Прежде чем обсуждать счетчики памяти, следует рассмотреть параметр /3GB.

При большом объеме памяти снижается активность дискового ввода-вывода, и, в свою очередь, повышается производительность приложений. Параметр /3GB был введен в Windows NT®, чтобы обеспечить способ предоставления большего объема памяти программам, работающим в пользовательском режиме.

В Windows используется виртуальное адресное пространство объемом 4 ГБ (независимо от того, каким объемом физической ОЗУ располагает система). По умолчанию 2 ГБ в нижних адресах зарезервированы для программ, работающих в пользовательском режиме, а 2 ГБ в верхних адресах зарезервированы для программ, работающих в режиме ядра. Параметр /3GB позволяет отдать 3 ГБ памяти процессам пользовательского режима. Это, конечно, происходит за счет памяти ядра, которому остается только 1 ГБ виртуального адресного пространства. Это приводит к проблемам, поскольку байты невыгружаемого пула памяти, байты выгружаемого пула памяти, свободные элементы таблицы страниц и куча рабочей среды все вмещаются в этот 1 ГБ адресного пространства. Следовательно, параметр /3GB следует использовать только после тщательного тестирования рабочей среды.

Это следует учесть, если возникает подозрение, что узкое место связано с памятью. Если параметр /3GB не является источником проблемы, эти счетчики можно использовать для диагностики возможного узкого места, связанного с памятью.

Память\Процент использования выделенной памяти Измеряет отношение числа байт выделенной виртуальной памяти к пределу выделенной виртуальной памяти, или, другими словами, долю используемой виртуальной памяти. Если это число превышает 80 процентов, это указывает на недостаточный объем памяти. Очевидным решением в этом случае является добавление памяти.

Память\Доступно МБ Измеряет в мегабайтах количество физической памяти, доступной выполняющимся процессам. Если это значение не превышает 5 процентов общего объема физического ОЗУ, значит, памяти недостаточно и может увеличиться активность страничного обмена. Для устранения этой проблемы следует просто увеличить объем памяти.

Память\Свободных элементов таблицы страниц Указывает число элементов таблицы страниц, не используемых системой в текущий момент. Если число не превышает 5000, возможно, имеется утечка памяти.

Память\Байт в невыгружаемом страничном пуле Измеряет в байтах объем невыгружаемого страничного пула памяти. Это область памяти системы, предназначенная для объектов, которые нельзя выгружать на диск и которые должны оставаться в выделенной им физической памяти. Если это значение превышает 175 МБ (или 100 МБ при использовании параметра /3GB), возможно, имеет место утечка памяти. Обычно в таком случае в журнал системных событий записывается событие с идентификатором 2019.

Память\Байт в выгружаемом страничном пуле Измеряет в байтах объем выгружаемого страничного пула памяти. Это область памяти системы, используемая объектами, для которых предусмотрена выгрузка на диск в том случае, если они не используются. Если это значение превышает 250 МБ (или 170 МБ при использовании параметра /3GB), возможно, имеется утечка памяти. Обычно в таком случае в журнал системных событий записывается событие с идентификатором 2020.

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

Узкое место, связанное с процессором

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

Процессор\% загруженности процессора Измеряет долю времени, затрачиваемого процессором на обработку всех потоков команд, кроме простаивающего. Если процент загруженности превышает 85 процентов, процессор перегружен, и серверу, возможно, требуется более быстрый процессор.

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

Процессор\% времени прерываний Измеряет время, затрачиваемое процессором на прием и обслуживание аппаратных прерываний во время конкретных интервалов измерений. Этот счетчик указывает на возможность возникновения неполадки оборудования, если значение превышает 15 процентов.

Система\Длина очереди процессора Измеряет число потоков в очереди процессора. Если в течение длительного времени это значение более чем в два раза превышает число процессоров, то серверу недостаточно процессорной мощности.

Узкое место, связанное с сетью

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

Сетевой интерфейс\Всего байт/сек Измеряет скорость отправки и приема байт через каждый сетевой адаптер, включая символы оформления кадров. Сеть перегружена, если выясняется, что используется более 70 процентов интерфейса. В случае сетевой карты со скоростью обмена 100 Мбит/с потребляемый интерфейс составляет 8,7 МБ/с (100 Мбит/с = 100 000 кбит/с = 12,5 МБ/с* 70 процентов). В подобной ситуации, возможно, придется установить более быструю сетевую карту или провести сегментирование сети.

Сетевой интерфейс\Длина очереди вывода Определяет количество исходящих пакетов в очереди. Перегрузка сети наступает при превышении показателем значения 2. Разрешить эту проблему можно посредством установки более быстрой сетевой карты или сегментирования сети.

Узкое место, связанное с процессами

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

Процесс\Счетчик дескрипторов Определяет общее число дескрипторов, открытых процессом на текущий момент. Этот счетчик указывает на возможность утечки дескрипторов, если число превышает 10 000.

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

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

Заключение

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

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

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

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

© 2008 Microsoft Corporation and CMP Media, LLC. Все права защищены; запрещено частичное или полное воспроизведение без специального разрешения.