Выявление узких
мест, связанных с работой
процессора
Процесс
Idle
Процессор
всегда должен выполнять код.
Если процессор не выполняет
процесс, содержащий полезный
код, то он выполняет процесс Idle.
Это обеспечивает занятость
процессора. Процесс Idle имеет
по одной нити для исполнения
на каждом из процессоров.
Многие
счетчики используют процесс
Idle для измерения, вычитая
простой из 100 %, чтобы
получить пропорцию времени,
в течении которой процессор
выполняет полезный код.
Длина
очереди (Queue Length)
Совокупность
нитей, конкурирующих за
получение процессорного
времени. Нити считаются
стоящими в очереди, если они
находятся в состоянии
“Ready", но не в состоянии
“Running”.
Постоянная
длина очереди более 2 нитей
показывает узкое место в
конфигурации процессора.
Диагностика
Исключите
память или другие узкие
места, которые загружают
процессор прежде, чем
диагностировать узкое место
вызываемое процессором.
Идентифицируйте
процессы, которые занимают
более 80% процессорного
времени. Если длина очереди
при этом составляет более 2
нитей, то вероятно, что узкое
место в работе системы
вызвано именно этим
процессом.
Если было
определено, что процессор
является узким местом
системы, то возможны
следующие варианты
повышения
производительности системы:
- Замена
процессора на более
быстрый если система
является файл-сервером
или сервером печати.
- Добавление
большего количества
процессоров если
система является
сервером приложений.
- Перенос
часть сервисов,
работающих в системе на
другие компьютеры сети.
Счетчики для объекта
Процессор
| System: % Total
Processor Time: |
Время (в
процентах от времени
работы) в течении
которого все процессоры
были заняты. В случае
одного процессора
эквивалентен счетчику
Processor: % Processor Time. В случае
нескольких процессоров
значение счетчика
усредняется.
Осуществляется
измерение процента
времени обрабатывания
процесса простоя (Idle
process) и это значение
вычитается из 100 %.
Получается процент
времени, в течении
которого процессор
выполнял полезные
процессы.
|
| Processor: % Total
Processor Time: |
Эквивалентен System:
% Processor Time, но персонально
для каждого процессора. |
| Process: % Processor
Time: |
Общее время (в
процентах к времени
работы) обработки нитей
конкретного процесса. |
| Process: % Processor
Time: _Total: |
Общее время
обработки всех нитей для
всех процессов. Не равно 100%
так как не включает
время прерывания
процессора и другие
нити. Включает процесс
простоя.
|
| System: Processor Queue
Length: |
Количество нитей,
содержащихся в очереди к
процессору на
выполнение. Не включает нить,
обрабатываемую в
текущий момент.
Показывает текущее (не
среднее) значение.
Больше 2 говорит
об узком месте.
|
| Processor: % User Time |
Процент времени в
течении которого
процессоры выполняют
нити, работающие в
Пользовательском
режиме. Не включается
время обработки
процесса простоя. Значения
более 75% показывают
наличие узкого места.
|
| Processor:
% Privileged Time |
Процент
времени в течении
которого процессоры
работают для внутренних
нужд операционной
системы. Не включается
время обработки
процесса простоя. Значения
более 75% показывают
наличие узкого места.
|
| Interrupts/sec |
Количество
прерываний, которое
процессор обрабатывает
за одну секунду. Значения
выше 1000 на системах 80486.66
и выше 3500 на системах
Pentium 90 PCI показывают
возможность конфликта
устройств.
|
|