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

windows server 2012 r2Счетчики производительности процессора являются продвинутым инструментом поиска проблем ЦП, анализа необходимых вычислительных мощностей, диагностики процессора как узкого места производительности. В статье я постараюсь дать описания всем известным мне счетчикам, а также пролить свет на нюансы анализа производительности.


Если вам интересны счетчики производительности Windows, рекомендую обратиться к основной статье тематики — Счетчики производительности.


Содержание

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

На среднестатистической операционной системе вы найдете две группы счетчиков производительности (не считая отдельно наборов счетчиков для Hyper-V), отвечающих за отслеживание метрик процессора. Это группы Процессор (Processor) и Сведения о процессоре (Processor Information). На первый взгляд группы очень похожи и вторая из них отличается лишь по количеству доступных счетчиков, которых там значительно больше. Отличие этих групп состоит в том, что вторая создана несколько позднее и рассчитана на поддержку значительно большего количества процессоров 1:

In order to maintain compatibility for software accessing the performance counters as those were introduced more than a decade ago, the Windows development team decided to leave the old performance counters untouched and have those available with the old restriction of 64 processors and instead introduce a new collection of performance counters which will support more than 64 processors. The new collection shows up in Performance Monitor under ‘Processor Information’.

Таким образом, если у вас многопроцессорные системы, для вас есть смысл пользоваться именно группой Сведения о процессоре (Processor Information). Вот так выглядят полные списки счетчиков русской и английской версий ОС:

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

Рассмотрим их более подробно.


UPD: 05.08.2016

В каждом разделе в виде цитаты будет даваться описание счетчика, доступное в самой ОС. Может быть кому-то оно покажется более понятным и полезным.


% C1 Time, % C2 Time, % C3 Time — % времени C1, % времени C2, % времени C3

Эти счетчики отображают % времени, которое процессор находится в том или ином состоянии (C-State). Эти состояния характеризуются пониженным энергопотреблением, а также разным временем перехода в обычный рабочий режим (например 10нс для С1, 100нс для С2 и 50мкс для С3 2). Для высоконагруженных систем может быть плохим показателем, если процессор часто пытается перейти в состояния ниже С1, ведь для выхода из них нужен приличный временной интервал. Некоторыми состояниями можно управлять прямо из BIOS и если у вас нет цели максимально сильно сократить энергопотребление, есть вариант отключить саму возможность перехода (особенно это касается состояния C1E, которое рекомендуют отключать, например, на серверах 1С).

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

Как видно на рисунке выше, до запуска нагрузочного теста процессор большинство времени находился в состоянии C2 и в момент запуска нагрузки (загрузка ЦП на графике пошла резко вверх) % состояния С2 опустился фактически до 0 и ЦП максимум переходил в состояние С1, но не глубже.

‘% времени С1/С2/С3’ — доля времени, в течение которого процессор находится в ‘спящем режиме’ по питанию, называемом С1/С2/С3. ‘% времени С1/С2/С3’ — это часть общего времени простоя процессора. Это состояние позволяет процессору полностью сохранять весь контекст работы и быстро вернуться в режим полноценного функционирования. Не все компьютеры поддерживают режим С1/С2/С3.

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

C1 Transitions/sec, C2 Transitions/sec, C3 Transitions/sec — C1-переходов/сек, C2-переходов/сек, C3-переходов/сек

Счетчики показывают количество событий перехода в указанное состояние в течение одной секунды. Время перехода в состояния глубже C1 сопряжено с увеличенными временными затратами на выход из этого состояния и если ваш ЦП при высокой (>50%) нагрузке часто бывает в режимах C2 или C3, это повод задуматься об аппаратном отключении этих состояний, если позволяет оборудование.

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

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

‘С1-переходов/сек/С2-переходов/сек/С3-переходов/сек’ — это скорость, с которой процессор переходит в ‘спящий’ режим по питанию С1/С2/С3. Процессор переходит в режим С1/С2/С3 тогда, когда он находится в режиме простоя и выходит из него по первому прерыванию. Этот параметр отображает разницу между значениями, наблюдавшимися между двумя последними выборками, поделенное на длительность интервала выборки.

Вывод: в норме даже на слабо загруженном сервере переходов в C3 быть не должно вообще, по крайней мере об этом говорят мои наблюдения. Поскольку значение этих счетчиков представляет из себя абсолютную величину, оно может значительно отличаться на разном оборудовании. Реально есть лишь небольшой смысл анализа данных о количестве переходов в режимы пониженного энергопотребления, вполне достаточно информации дают счетчики %C1/2/3 Time.

% DPC Time — % времени DPC

Счетчик показывает % времени, которое процессор затратил на прием и обслуживание отложенного вызова процедур (Deferred Procedure Call — DPC). Поскольку вызовы DPC выполняются в привилегированном режиме (хоть и с меньшим приоритетом, чем обычные прерывания), показания этого счетчика являются частью общего % времени работы в привилегированном режиме. В любом случае значение счетчика % времени DPC не должно быть большим, в противном случае процессор является узким местом или существуют проблемы с ПО.

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

На графике выше % времени DPC обозначен красной линией и среднее значение составляет десятые доли процента, это вполне нормальный показатель.

% времени DPC — это доля времени, которое процессор был занят обработкой вызовов отложенных процедур (DPC — Deferred Procedure Call). Прерывания DPC имеют более низкий приоритет, чем обычные прерывания. % времени DPC является компонентом «% времени в привилегированном режиме», поскольку прерывания DPC выполняются в привилегированном режиме. Прерывания DPC подсчитываются отдельно от обычных прерываний и не входят в счетчики обычных прерываний. Этот счетчик отображает средний процент занятого времени во время интервала измерения.

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

DPCs Queued/sec — Поставлено в очередь DPC/сек

Из названия видно, что этот счетчик отражает среднее количество прерываний DPC, поставленных в очередь в секунду. Фактически это можно назвать средней скоростью добавления в очередь. Об этом счетчике вы найдете достаточно мало информации. Данных об анализе его значений ещё меньше. Мне кажется, что показания счетчика исключительно субъективны и на процессорах разных поколений или даже эпох «нормальными» значениями могут быть величины, отличающиеся на порядки (или ещё больше).

«Поставлено в очередь DPC/сек» — это скорость, с которой отложенные вызовы процедур устанавливаются в очередь DPC для данного процессора. DPC — это прерывания, которые имеют более низкий приоритет, чем стандартные прерывания. Каждый процессор имеет свою собственную очередь DPC. Этот параметр измеряет скорость, с которой вызовы DPC помещаются в очередь, а не количество вызовов в очереди. Поэтому эта величина показывает разницу между значениями последних двух выборок, поделенную на длительность интервала выборки.

Вывод: малопригодный для обособленного анализа счетчик. Лучшим вариантом будет сравнение вместе с % DPC Time, при этом большие значения при небольшом % не должны вас пугать.

DPC Rate — Скорость DPC

Как и DPCs Queued/sec счетчик DPC Rate отражает скорость постановки прерываний DPC, только в этом случае принимается во внимание последнее взятое значение, а не усредненное. Нормальными также могут считаться совершенно разные показатели. Например где-то указывают на критический уровень в 20 3, в то время как даже на несильно нагруженной системе у меня значений меньше 50 не бывает.

«Скорость DPC» — это скорость, с которой отложенные вызовы процедур помещаются в очередь процессора между прерываниями системного таймера. DPC — это прерывания, которые имеют более низкий приоритет, чем стандартные прерывания. Каждый процессор имеет свою собственную очередь DPC. Этот параметр измеряет скорость, с которой вызовы DPC помещаются в очередь, а не количество вызовов в очереди. Счетчик отображает последнюю измеренную величину, а не среднее значение.

Вывод: аналогично DPCs Queued/sec — малопригодный для обособленного анализа счетчик. Лучшим вариантом будет сравнение вместе с % DPC Time, при этом большие абсолютные значения при небольшом % не должны вас пугать.

% Interrupt Time — % времени прерываний

Счетчик отображает процент времени, которое процессор тратит на обработку прерываний от устройств, поскольку в этом режиме могут быть запущены только подпрограммы обслуживания прерываний (ISR, которые являются функциями драйверов устройств 4). Большие значения счетчика могут говорить о проблемах с оборудованием. В норме показания не должны выходить за 5% даже при значительной (>50%) нагрузке на ЦП. Значения в 20% уже очень подозрительны.

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

На графике выше % Processor Time (красная линия) сервера Exchange 2013. При этом значения счетчика % Interrupt Time составляют сотые доли процента от общей нагрузки процессора.

% времени прерываний — это доля времени выборочного интервала, которую процессор тратит на обработку аппаратных прерываний; эта величина является косвенным показателем активности устройств, формирующих аппаратные прерывания. Эта величина равна сумме значений ‘Процессор: % времени прерываний’ для всех процессоров на компьютере, деленная на число процессоров. DPC подсчитываются отдельно и не входят в состав общего счетчика прерываний. Эта величина является косвенным показателем активности устройств, формирующих аппаратные прерывания, таких как системного таймера, мыши, драйверов дисков, линий передачи данных, сетевых адаптеров и других периферийных устройств.

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

Interrupts/sec — Прерываний/сек

В отличии от % Interrupt Time, счетчик показывает абсолютное значение, то есть количество прерываний в секунду. Поскольку прерывания принимаются от оборудования, высокие значения косвенно могут свидетельствовать о проблемах с устройствами или с их драйверами. Особенно актуальны показания счетчика после физического добавления нового устройства на сервер. Счетчик не учитывает прерывания DPC. В «голом» виде параметр анализировать смысла большого нет.

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

В таблице сверху 0,2% загрузки ЦП соответствует примерно два десятка тысяч прерываний в секунду. Замеры проведены на Core i7-4770 при средней загрузке (% Processor Time) ЦП 10%.

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

Вывод: показания счетчика нужно анализировать вместе с % Interrupt Time и при большом значении последнего делать вывод о существовании каких-либо проблем. Если хотите привязать наблюдения именно к счетчику Interrupts/sec, то для начала нужно собрать историю показаний на отслеживаемом оборудовании и после этого эмпирически выставить пороговые значения, которые по вашему мнению будут свидетельствовать о проблемах. При этом на разном оборудовании пороговые значения должны быть разными, это ведь абсолютные значения, а не относительные. Радикально сократить количество прерываний можно с помощью параметра Win32PrioritySeparation 5. Начните с максимального значения в 3F (в 16-ричной системе счисления) и понижайте при необходимости.

% Processor Time — % загруженности процессора

Процент времени, в которое ЦП выполняет инструкции, то есть занят какими-либо задачами. Счетчик включает в себя процессорное время, затрачиваемое на обработку аппаратных прерываний 6:

Shows the percentage of elapsed time that this thread used the processor to execute instructions. An instruction is the basic unit of execution in a processor, and a thread is the object that executes instructions. Code executed to handle some hardware interrupts and trap conditions is included in this count.

Пример показаний счетчиков % Processor Time и % Idle Time:

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

На графике выше сумма показаний счетчиков составляет 100% процессорного времени, хорошо виден момент запуска нагрузочного теста.

% загруженности процессора — это процент времени, затраченного процессором на выполнение любого потока, кроме потока бездействия. Для вычисления этого значения измеряется процент времени, затраченного процессором на выполнение потока бездействия, а затем полученное значение вычитается из 100%. (У каждого процессора есть поток бездействия, на который расходуется время, если отсутствуют другие потоки, готовые к выполнению). Этот счетчик является основным индикатором активности процессора и показывает средний процент времени занятости за определенное время. Следует отметить, что учет использования ресурсов процессором выполняется через внутренние интервалы, равные тактам системных часов. По этой причине в современных быстрых процессорах % загруженности процессора может быть занижен, так как процессор может затрачивать много времени на обработку потоков между соседними тактами системных часов. Приложения таймера на основе рабочей нагрузки представляют один из примеров приложений, для которых наиболее вероятно неточное измерение занятости по причине того, что таймер получает сигнал сразу после обработки выбранного интервала.

Вывод: хоть это и самый элементарный для понимания счетчик, но все же он является самым главным. Начинать анализировать работу ЦП нужно именно с него. При небольших показаниях (менее 40% в среднем) % Processor Time браться за анализ других счетчиков ЦП не имеет никакого смысла. ЦП в данном случае бутылочным горлышком являться не будет.

% Idle Time — Процент времени бездействия

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

«% времени бездействия» — доля времени, когда процессор простаивает в течение интервала выборки

Вывод: счетчик полезно использовать вместе с % Processor Time для исключения ошибок в показаниях последнего. При этом показания счетчика % Processor Time = 100 — % Idle Time и наоборот, что вполне логично. Ведь загрузка процессора на 80% фактически говорит о том, что все же 20% времени ЦП бездействует.

Average Idle Time — Среднее время простоя

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

Среднее время простоя — средняя продолжительность (в единицах по 100 нс) простоя между двумя последними снятиями показаний.

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

% of Maximum Frequency — % от максимальной частоты

Отображает процент от максимальной частоты процессора. На мой взгляд счетчик более актуален для ноутбуков, но не для серверных или даже десктопных систем. Дело в том, что ЦП в простое очень часто не понижает частоту, а просто отключает ненужные ядра, оставляя активным одно на 100% частоте. По крайне мере я не видел, чтобы на сервере со средней (<30%) нагрузкой ЦП понижалась частота, а вот ядра отключаются регулярно:

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

В примере выше скрины до и после запуска нагрузочного теста. В обоих случаях частота была одинакова (разница в 0,1Мгц не учитывается), но количество активных ядер ЦП различалось.

% от максимальной частоты текущего процессора.

Вывод: малопригодный для анализа проблем счетчик. Подозрительной может стать ситуация, когда загрузка ЦП близится к 100%, в то время как % от максимальной частоты ниже 100. Кстати, счетчик может принимать значения больше 100%.

Processor Frequency — Частота процессора

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

Частота текущего процессора в мегагерцах.

Вывод: какой-либо явной потребности в показаниях счетчика Processor Frequency как мне кажется нет. Если все же хотите снимать его показания, рекомендую производить их анализ совместно со счетчиком % of Maximum Frequency.

% Performance Limit — % ограничения производительности

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

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

Вывод: назначение счетчика до конца неизвестно. Если у кого-то есть данные о нем, буду рад информации.

% Processor Performance — % Производительность процессора

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

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

Вывод: назначение счетчика до конца неизвестно. Если у кого-то есть данные о нем, буду рад информации.

% Priority Time — % приоритетной загруженности

Счетчик отображает процент времени, которое затрачивается на обработку процессов, имеющих не низкий приоритет. На официальных ресурсах пишут следующее: значение счетчика вычисляется путем вычитания из 100% доли времени, которое процессор выполняет потоки с низким приоритетом или бездействующие потоки 7:

This counter displays the average percentage of busy time observed during the sample interval excluding low priority background work. It should be noted that the accounting calculation of whether the processor is idle is performed at an internal sampling interval of the system clock tick.

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

% приоритетной загруженности — это процент времени, затраченного процессором на выполнение потоков, приоритет которых отличен от низкого. Для вычисления этого значения измеряется процент времени, затраченного процессором на выполнение потоков с низким приоритетом либо потока бездействия, а затем полученное значение вычитается из 100%. (У каждого процессора есть поток бездействия, на который расходуется время, если отсутствуют другие потоки, готовые к выполнению). Этот счетчик показывает средний процент времени занятости за определенное время за исключением обработки потоков с низким приоритетом в фоновом режиме. Следует отметить, что учет использования ресурсов процессором выполняется через внутренние интервалы, равные тактам системных часов. По этой причине % приоритетной загруженности может быть занижен, так как процессор может затрачивать много времени на обработку потоков между соседними тактами системных часов. Приложения таймера на основе рабочей нагрузки представляют один из примеров приложений, для которых наиболее вероятно неточное измерение занятости по причине того, что таймер получает сигнал сразу после обработки выбранного интервала.

Вывод: счетчик имеет второстепенную важность для общего анализа производительности ЦП, тем не менее может быть полезен в случае выяснения обстоятельств ненормального поведения процессора. Использовать в одиночку смысла большого нет, нужно анализировать данные обязательно в связке с % Processor Time.

% Privileged Time — % работы в привилегированном режиме

Счетчик отображает процент времени, которое процессор затрачивает на обработку запросов ядра, то есть выполняет код в привилегированном режиме. Все функции ОС работают именно в этом режиме. Теоретически не должно быть ситуации, когда работа в привилегированном режиме сжирает двухзначные доли процессорного времени. Если значение этого счетчика переваливает за 10% — это повод поискать где могут быть проблемы; значение в 20% уже выглядит крайне подозрительным.

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

На графике выше изображены счетчики % Processor Time (красный) и % Privileged Time (розовый) реального сервера 1С. % работы в привилегированном режиме даже на пиковых значениях не поднимается выше 10%.

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

Вывод: достаточно информативный счетчик. При значениях выше 20% есть большой смысл начать копать глубже и проанализировать показания счетчиков % User Time, % Interrupt Time, % DPC Time. Повышенное внимание должна вызвать ситуация, когда показания счетчика начинают стабильно резко превышать среднестатистические значения, наблюдаемые ранее.

% User Time — % работы в пользовательском режиме

Если % Privileged Time говорит о времени, которое тратится на работу ОС и оборудования, то % User Time — это как раз та полезная нагрузка, для выполнения которой и куплен ваш сервер. Логично предположить, что % Processor Time как минимум является суммой работы ЦП в пользовательском и привилегированном режиме. В норме значения % User Time не должны выходить за 60% в среднем.

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

На графике выше % работы в пользовательском режиме обозначен зеленым цветом, красный и розовый — % Processor Time и % Privileged Time соответственно.

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

Вывод: анализировать счетчик необходимо как минимум совместно с % Privileged Time и бить тревогу, если разница между % User Time и % Processor Time составляет более трети в пользу последнего.

% Privileged Utility — % привилегированной полезной загрузки

Как минимум для меня малоизвестный счетчик, который, к тому же, встречается далеко не на каждой системе. Например в Windows Server 2008 R2 его нет, но в 2012/8 он присутствует. Судя по всему, счетчик отображает % полезной работы, выполненной в привилегированном режиме.

Привилегированная полезная загрузка — это объем работы, выполняемой процессором в привилегированном режиме, в процентах от объема работы, которую процессор выполнил бы, если бы функционировал с номинальной производительностью и никогда не простаивал. У некоторых процессоров этот показатель может превышать 100%.

Вывод: назначение счетчика до конца неизвестно. Если у кого-то есть данные о нем, поделитесь, пожалуйста.

% Processor Utility — % полезной загрузки процессора

Также один из «недавних» счетчиков, о принципе работы которого мне ничего не известно. Если смотреть на графики на разных системах, то показания этого счетчика практически всегда бывают больше % Processor Time. Поскольку значение счетчика больше реальной загрузки процессора, то вполне вероятно, что сам счетчик отображает чисто гипотетические значения и призван показать насколько эффективно используется ваш ЦП. То есть можно сделать вывод, что чем больше разница между % Processor Utility и % Processor Time, тем менее эффективно используется ваш процессор.

Полезная загрузка процессора — это объем выполняемой процессором работы в процентах от объема работы, которую процессор выполнил бы, если бы функционировал с номинальной производительностью и никогда не простаивал. У некоторых процессоров этот показатель может превышать 100%.

Вывод: назначение счетчика до конца неизвестно. Если у кого-то есть данные о нем, поделитесь, пожалуйста.

Clock Interrupts/sec — прерываний тактового генератора/с

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

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

Вывод: до конца непонятно какую пользу может принести счетчик в поиске проблем с ЦП.

Idle Break Events/sec — Событий прерываний простоя/с

Счетчик отображает количество событий в секунду, когда процессор выходил из состояния простоя. Насколько я понимаю, показания счетчика нужно анализировать совместно с % Idle Time и другими. На сайте Intel есть интересная статья 8 про анализ потребляемой ЦП мощности, в которой также упоминаются счетчики Idle Break Events/secClock Interrupts/sec. Но эта статья была написана для мобильных платформ.

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

Вывод: малопригодный для анализа производительности ЦП счетчик. На мой взгляд более информативными данными будут показания счетчиков C-State.

Parking Status — Состояние приостановки

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

Состояние приостановки определяет, выполнена или нет приостановка процессора.

Вывод: данные счетчика в большинстве случаев можно принять только к сведению. Чего-то большего из счетчика выжимать смысла нет.

Performance Limit Flags — Флаги ограничения производительности

Флаги ограничения производительности процессора говорят о причине снижения этой самой производительности. Интересный счетчик, жаль не удалось найти о нем какой-либо информации. Счетчик доступен с Windows 2012/8, в более ранних версиях системы его нет.

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

Вывод: к сожалению, информации о счетчике найти не удалось.

Processor State Flags — Флаги состояния процессора

Также информации найти не удалось. Счетчик доступен в том числе и на win2k8.

Флаги состояния процессора

Вывод: флаги состояния процессора, как и флаги ограничения производительности, могут дать информацию о причинах неполадок.

Вывод

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

Счетчики первого порядка, на которые стоит обращать внимание в первую очередь:

  • \Processor Information(_Total)\% C1 Time
  • \Processor Information(_Total)\% C2 Time
  • \Processor Information(_Total)\% C3 Time
  • \Processor Information(_Total)\% Interrupt Time
  • \Processor Information(_Total)\% Processor Time
  • \Processor Information(_Total)\% Idle Time
  • \Processor Information(_Total)\% Privileged Time
  • \Processor Information(_Total)\% User Time

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

  • \Processor Information(_Total)\% DPC Time
  • \Processor Information(_Total)\C1 Transitions/sec
  • \Processor Information(_Total)\C2 Transitions/sec
  • \Processor Information(_Total)\C3 Transitions/sec
  • \Processor Information(_Total)\Interrupts/sec

Надеюсь статья была вам полезна. Оставляйте свои комментарии.

comments powered by HyperComments