Объекты и счетчики Performance Monitor
12.3.1. Типы объектов
Объекты представляют в Performance Monitor процессы, секции разделяемой памяти и физические устройства. Процесс в Windows NT может представлять приложение (например, Word for Windows), сервис системы (например, Print Spooler) или подсистему окружения (например, Posix).
С каждым из объектов связан ряд счетчиков, значения которых можно наблюдать. В сущности, Performance Monitor предоставляет данные не об объектах, а о счетчиках.
Счетчики обычно включают ссылку на объект, к которому они относятся, в форме ОБЪЕКТ:СЧЕТЧИК. Например, PROCESSOR:%PROCESSOR TIME - это счетчик, учитывающий процент использования для данного процессора.
12.3.2. Процессы и экземпляры
Объект, соответствующий процессу, может быть представлен в нескольких экземплярах. Если в системе одновременно активны четыре процесса, то Performance Monitor будет генерировать данные для четырех экземпляров объекта типа процесс.
Любые объекты могут иметь несколько экземпляров. Например, объект Processor может иметь несколько экземпляров, если система многопроцессорная. Если объект имеет несколько экземпляров, то каждый экземпляр может использовать один и тот же набор счетчиков.
12.3.3. Адреса и нити
Каждый процесс, кроме выполняемого файла, имеет также область виртуального адресного пространства и по крайней мере одну нить. Каждая нить, работающая в операционной системе, отображается как отдельный экземпляр объекта типа нить и идентифицируется процессом, в рамках которого она выполняется. Например, если Printer Manager имеет две активные нити, то Performance Monitor идентифицирует их как экземпляры объектанити с именами Printman = 0 и Printman = 1.
12.3.4. Счетчики
С каждым объектом связан набор счетчиков, которые генерируют данные о различных аспектах производительности объекта. В следующей таблице собраны наиболее влияющие на производительность счетчики.
Тип объекта | Счетчик | Возможные действия |
Processor (процессор) | %Processor Time (время занятости процессора) | Если значение этого счетчика постоянно велико, а значения счетчика диска и сетевого адаптера невысоки, то нужно проверить процессор |
Physical Disk (физический диск) | %Disk Time (время занятости диска) | Если значение этого счетчика постоянно велико, и значение счетчика Disk Queue Length (длина очереди к диску) больше 2, то нужно проверить диск |
Memory (память) | Pages/sec (скорость обмена страниц) | Если этот счетчик постоянно больше 5, то нужно проверить память |
Server (сервер) | Bytes Total/sec (скорость обмена с памятью) | Если сумма значений счетчиков Bytes Total/sec для всех серверов сети примерно равна максимальной пропускной способности сети, то сеть нужно сегментировать |
12.3.5. Способы представления данных
Performance Monitor обеспечивает несколько вариантов представления собранных данных: режим просмотра графиков (chart view), режим отчета (report view), режим предупреждения (alert view) и режим регистрации в файле (log view). Режим просмотра графиков позволяет в реальном времени представлять в одном окне экрана в виде двухмерных графиков последовательные значения нескольких счетчиков.
В режиме отчета данные представляются в формате таблицы. Режим предупреждения позволяет во время работы утилиты Performance Monitor продолжать другие работы. При наступлении заранее определенного события монитор предупреждает администратора путем отображения соответствующего экрана. Предупреждение может происходить при первом наступлении события или при каждом. В этом режиме фиксируется максимум 1000 событий. Режим фиксации данных в файле позволяет просмотреть их позже в удобной форме - в виде графиков, отчетов и предупреждений.
12.3.6. Наблюдение за потреблением ресурсов процессора, дисков и памяти
Процессор
Так как процессор всегда выполняет некоторые команды, то теоретически коэффициент его использования всегда равен 100%. Однако в системе имеются так называемые "нити простоя", которые просто выполняют цикл ожидания следующего события для низкоуровневого кода ядра. Время выполнения этих нитей не учитывается при вычислении коэффициента использования в утилите Performance Monitor.
Performance Monitor характеризует использование процессоров объектами двух типов:
- System - характеризует общую загрузку всех процессоров системы;
- Processor - характеризует загрузку конкретного процессора.
В однопроцессорной системе эти значения совпадают.
Для этих объектов имеются три счетчика, связанные с коэффициентом использования:
- % [Total] Privileged Time - доля времени, которое процессор проводит в привилегированном режиме;
- % [Total] User Time - доля времени, которое процессор проводит в пользовательском режиме;
- % [Total] Processor time - доля времени, которое процессор проводит, занимаясь полезной работой, то есть не в нитях простоя.
Если значение счетчика % Processor Time превышает 80%, то это говорит о том, что процессор не справляется с работой, и он должен быть заменен на более мощный (или же должен быть добавлен еще один процессор, если система многопроцессорная).
Аналогичные счетчики существуют и для объекта Process. В этом случае они отражают коэффициент использования процессора только нитями одного конкретного процесса.
Кроме того, имеются и другие счетчики для характеристики работы процессоров, из которых наиболее важными являются следующие:
- Processor Queue Length - длина очереди к процессору, равна количеству нитей, готовых к выполнению и стоящих в очереди к процессору. Если в течение длительного времени средняя длина очереди превышает значение 2, то это говорит о том, что процессор является узким местом. Обычно значение этого счетчика равно 0.
- Interrupt/sec - количество прерываний в секунду, характеризует интенсивность запросов обслуживания от устройств ввода-вывода. Резкое увеличение значения этого счетчика без увеличения активности системы говорит об аппаратных проблемах.
Счетчик Process: % Processor Time нужно использовать для отслеживания коэффициента использования процессора для всех процессов. Если более чем два процесса претендуют на большую часть процессорного времени, то необходимо заменить или добавить процессор.
Диск
При наблюдении за диском нужно учитывать, что среднее время доступа к данным для большинства дисков находится в пределах от 8 до 18 миллисекунд.
Статистика о работе дисковой подсистемы может помочь в достижении баланса рабочей нагрузки сетевого сервера. Если дисковая подсистема достаточно производительна, то это создает меньшую нагрузку на подсистему виртуальной памяти и программы будут выполняться быстрее. Performance Monitor поддерживает два типа объектов, которые содержат счетчики дисковой подсистемы:
- Physical Disk - счетчики физического диска полезны для обнаружения неисправностей и планирования емкости.
- Logical Disk - счетчики, генерирующие статистику о свободном пространстве на диске и идентифицирующие любой источник активности на физическом томе.
С производительностью диска тесно связаны два счетчика: Disk Queue Length - средняя длина очереди запросов к диску, и Average Disk sec/Transfer - среднее время выполнения одного запроса к диску.
На основании значений этих счетчиков можно вычислить такой важный показатель, как среднее время ожидания в очереди, которое хорошо отражает производительность дисковой подсистемы.
Среднее время ожидания в очереди = Disk Queue Length x Average Disk sec/Transfer.
Обычно дисковые счетчики в системе отключены чтобы не снижать ее производительности.
Память
Оптимизация памяти состоит в определении трех вещей:
- корректного значения размера физической памяти;
- корректного значения размера страничного файла (ов);
- корректного распределения страничного файла (ов).
Для определения корректного значения физической памяти необходимо выполнить два шага. Во-первых, решить, нужна ли дополнительная память. Во-вторых, определить количество требуемой дополнительной памяти.
Решение о том, что дополнительная память нужна, принимается на основании количества страничных обменов, которые выполняет система. Если страничный обмен ведется интенсивно, то производительность существенно снижается.
Для того, чтобы определить, что страничный обмен ведется слишком интенсивно, нужно вычислить произведение:
Memory: Pages/sec x Logical Disk: Avg. Disk sec/Transfer,
где Logical Disk относится к диску, на котором находится страничный файл PAGE-FILE.SYS.
Это произведение равно доле времени доступа к диску, которое тратится на страничные обмены. Если эта доля больше 10% (0.1), то система нуждается в дополнительной памяти.
Следующий шаг состоит в определении количества дополнительной памяти. Эта величина определяется на основании значения счетчика Process: Working Set для каждого активного процесса в системе. Нужно по очереди завершать процессы в системе (начиная с процесса с самым большим значением рабочего набора) и следить за интенсивностью страничного обмена. После того, как интенсивность страничного обмена уменьшится до приемлемой величины, нужно найти суммарный объем памяти, потребляемой завершенными процессами, сложив их рабочие наборы. Этот объем и будет величиной требуемой дополнительной памяти.