СРЕДСТВА АНАЛИЗА И ОПТИМИЗАЦИИ ЛОКАЛЬНЫХ СЕТЕЙ

       

Наблюдение за потреблением ресурсов процессора, дисков и памяти


Процессор

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

PerformanceMonitor характеризует использование процессоров объектами двух типов:

  • System - характеризует общую загрузку всех процессоров системы;
  • Processor - характеризует загрузку конкретного процессора.

В однопроцессорной системе эти значения совпадают.

Для этих объектов имеются три счетчика, связанные с коэффициентом использования:

  • % [Total] PrivilegedTime - доля времени, которое процессор проводит в привилегированном режиме.
  • % [Total] UserTime - доля времени, которое процессор проводит в пользовательском режиме.
  • % [Total] Processortime - доля времени, которое процессор проводит, занимаясь полезной работой, то есть не в нитях простоя.

Если значение счетчика % ProcessorTime превышает 80%, то это говорит о том, что процессор не справляется с работой, и он должен быть заменен на более мощный (или же должен быть добавлен еще один процессор, если система многопроцессорная).

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

  • ProcessorQueueLength - длина очереди к процессору, равна количеству нитей, готовых к выполнению и стоящих в очереди к процессору.

Если в течение длительного времени средняя длина очереди превышает значение 2, то это говорит о том, что процессор является узким местом. Обычно значение этого счетчика равно 0.

  • Interrupt/sec - количество прерываний в секунду, характеризует интенсивность запросов обслуживания от устройств ввода-вывода.
    Резкое увеличение значения этого счетчика без увеличения активности системы говорит об аппаратных проблемах.
  • Счетчик Process: % ProcessorTime нужно использовать для отслеживания коэффициента использования процессора для всех процессов. Если более чем два процесса претендуют на большую часть процессорного времени, то необходимо заменить или добавить процессор.


Диск

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

Статистика о работе дисковой подсистемы может помочь в достижении баланса рабочей нагрузки сетевого сервера. Если дисковая подсистема достаточно производительна, то это создает меньшую нагрузку на подсистему виртуальной памяти и программы будут выполняться быстрее. PerformanceMonitor поддерживает два типа объектов, которые содержат счетчики дисковой подсистемы:


  • PhysicalDisk - счетчики физического диска полезны для обнаружения неисправностей и планирования емкости.
  • LogicalDisk - счетчики, генерирующие статистику о свободном пространстве на диске и идентифицирующие любой источник активности на физическом томе.


С производительностью диска тесно связаны два счетчика: DiskQueueLength - средняя длина очереди запросов к диску, и AverageDisksec/Transfer - среднее время выполнения одного запроса к диску.

На основании значений этих счетчиков можно вычислить такой важный показатель, как среднее время ожидания в очереди, которое хорошо отражает производительность дисковой подсистемы.

Среднее время ожидания в очереди = DiskQueueLengthxAverageDisksec/Transfer.

Обычно дисковые счетчики в системе отключены, чтобы не снижать ее производительности.

Память

Оптимизация памяти состоит в определении следующих параметров:


  • корректного значения размера физической памяти;
  • корректного значения размера страничного файла;
  • корректного распределения страничного файла.


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


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

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

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

Memory: Pages/sec x Logical Disk: Avg. Disk sec/Transfer,

где LogicalDisk относится к диску, на котором находится страничный файл PAGEFILE.SYS.

Это произведение равно доле времени доступа к диску, которое тратится на страничные обмены. Если эта доля больше 10%, то система нуждается в дополнительной памяти.

Следующий шаг состоит в определении количества дополнительной памяти. Эта величина определяется на основании значения счетчика Process: WorkingSet для каждого активного процесса в системе. Нужно по очереди завершать процессы в системе (начиная с процесса с самым большим значением рабочего набора) и следить за интенсивностью страничного обмена. После того, как интенсивность страничного обмена уменьшится до приемлемой величины, нужно найти суммарный объем памяти, потребляемой завершенными процессами, сложив их рабочие наборы. Этот объем и будет величиной требуемой дополнительной памяти.


Содержание раздела