¿Cómo puede un contador "% de tiempo de procesador" de Perfmon superar el 100%?


9

El contador, Process(sqlservr)\% Processor Timeronda el 300% en uno de mis servidores de bases de datos. Este contador refleja el porcentaje del tiempo total que SQL Server pasó ejecutándose en la CPU (modo de usuario + modo de privilegio). El libro, Sql Server 2008 Internals and Solución de problemas , dice que cualquier cosa mayor al 80% es un problema.

¿Cómo es posible que ese contador supere el 100%?

Respuestas:


21

Hay dos contadores con el mismo nombre:

Process\% Processor Time: La suma del tiempo de procesador en cada procesador

Processor(_Total)\% Processor Time: El total de todos los procesadores

Su pregunta indica que está utilizando el primer contador, lo que significa que su valor máximo es 100% * (no de CPU).

Entonces, si tiene 4 CPU, entonces el máximo total es 400%, y el 80% es en realidad (400 * 0.8 =) 320% (y para 8 CPU es 640%, etc., etc.)


¡Sí! Eso es. Tengo 8 CPUs. Por lo tanto, mi uso total de CPU sqlservr es en realidad alrededor del 37%. Y eso significa que todo es normal. ¡Gracias, @Farseeker!
Bill Paetzke

En cualquier momento. Tuve consultas similares cuando comencé a usar perfmon en sistemas de múltiples CPU.
Mark Henderson

2
¿El número de CPU incluye hyperthreading? Por ejemplo, si mi computadora es de cuatro núcleos y tengo hyperthreading, ¿debo tener en cuenta 4 procs u 8?
Matthew Rodatus

1
¿Hay alguna manera de encontrar el uso del procesador de un solo proceso con un valor entre 0 y 100% (también conocido como: muestra la carga extendida en todas las CPU)? Prefiero no hacer la división yo mismo
Jeroen Vannevel

0

Este valor se calcula sobre la línea base de (No de CPUS lógico * 100), por lo que se calculará sobre una línea base de más de 100.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.