Как счетчик Perfmon «% процессорного времени» может превышать 100%?

9

Счетчик Process(sqlservr)\% Processor Timeсоставляет около 300% на одном из моих серверов баз данных. Этот счетчик отражает процент общего времени, проведенного SQL Server на ЦП (режим пользователя + режим привилегий). В книге « Внутренние компоненты и устранение неполадок Sql Server 2008» говорится, что проблема, превышающая 80%, является проблемой.

Как возможно, что этот счетчик превышает 100%?

Билл Паецке
источник

Ответы:

21

Есть два счетчика с одинаковым именем:

Process\% Processor Time: Сумма процессорного времени на каждом процессоре

Processor(_Total)\% Processor Time: Всего по всем процессорам

Ваш вопрос указывает на то, что вы используете первый счетчик, что означает, что его максимальное значение составляет 100% * (без процессоров).

Таким образом, если у вас 4 ЦП, то общий максимум составляет 400%, а 80% на самом деле (400 * 0,8 =) 320% (а для 8 ЦП это 640% и т. Д.)

Марк Хендерсон
источник
Ага! Вот и все. У меня 8 процессоров. Таким образом, общее использование процессора в sqlservr на самом деле составляет около 37%. А это значит, что все нормально. Спасибо, @Farseeker!
Билл Паецке
Любое время. У меня были похожие запросы, когда я впервые начал использовать perfmon в системах с несколькими процессорами.
Марк Хендерсон
2
Включает ли число процессоров гиперпоточность? Например, если у меня четырехъядерный компьютер и у меня гиперпоточность, нужно ли мне учитывать 4 проца или 8?
Мэтью Родатус
1
Есть ли способ найти использование процессора одним процессом со значением от 0 до 100% (иначе: он показывает распределение нагрузки по всем процессорам)? Я предпочел бы не делать разделение себя
Jeroen Vannevel
0

Это значение рассчитывается по базовой линии (No of Logical CPUS * 100), так что это будет рассчитано по базовой линии более 100.

Махеш Кумар Чиливери
источник