GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Problemas de Rendimiento ¿Tenemos un cuello de botella en el procesador/CPU?


Otro de los problemas de rendimiento en Windows que están dentro del Top-Ten, son sin duda los problemas de rendimiento de procesador o CPU. En el presente artículo mostramos una de las forma de identificar si tenemos un cuello de botella de procesador o CPU en Windows Server, utilizando Contadores de Rendimiento, para de este modo, poder focalizar mejor cómo continuar con nuestro debugging.

En muchas ocasiones tenemos que pegarnos con los contadores de rendimiento para identificar cuellos de botella de CPU, para lo cual, no sólo tenemos disponible el contador % Processor Time, sino que además tenemos la posibilidad de analizar otros muchos contadores de rendimiento, como es el caso de % Privileged Time, Context Switches/sec, % Interrupt Time, Processor Queue Length.

Como ya comentamos anteriormente en el artículo ¿Tenemos un cuello de botella en el acceso a disco?, un Contador Primario, es un contador que debemos comprobar en primer lugar para la identificación de un problema. Si no tenemos ningún problema, genial. Si tenemos un problema, entonces deberemos analizar los Contadores Secundarios para obtener mayor información del problema que tenemos.

Contadores Primarios para los Problemas de Rendimiento de Procesador/CPU

Para la identificación de problemas de rendimiento de procesador o CPU, el principal Contador Primario que podemos utilizar es \Processor(*)\% Processor Time, el cual es la suma de % Privileged Time y % User Time, y que mide que tanto por ciento de tiempo está siendo el utilizado el procesador o CPU. Como referencia, un valor por debajo del 50% será saludable, entre el 50% y el 80% deberemos empezar a preocuparnos, y valores meseta por encima del 80% significarán que muy probablemente tenemos un cuello de botella en el procesador/CPU.

Otro Contador Primario que podemos utilizar es \Processor(*)\% Privileged Time, el cual mide que tanto por ciento del tiempo que está siendo utilizado el Procesador por el Kernel, es decir, el porcentaje de tiempo que un Hilo (Thread) se ejecuta en Modo Privilegiado. Como aclaración, cuando una aplicación realiza una llamada a una función del Sistema Operativo (ej: una operación de disco, red, o memoria), dicha función del Sistema Operativo es ejecutada en Modo Privilegiado. Como referencia, un valor por debajo del 30% será saludable, entre el 30% y el 50% deberemos empezar a preocuparnos, y valores meseta por encima del 50% significarán que muy probablemente tenemos un problema.

Contadores Secundarios para los Problemas de Rendimiento de Procesador/CPU

Tenemos varios Contadores Secundarios que podemos analizar, principalmente los siguientes:

  • \System\Context Switches/sec. Los cambios de contexto ocurren cuando el kernel cambia la asignación de CPU desde un Hilo (Thread) a otro. Un valor alto de este contador indica que la CPU está siendo compartida en exceso, es decir, que hay demasiados Hilos (Threads) compitiendo por los recursos de la CPU. Es especialmente recomendable revisar este contador, cuando el contador % Privileged Time tenga valores altos. Como referencia, es saludable un valor por debajo de 5000, a partir de 2500x#CPUs deberemos empezar a preocuparnos, y una meseta por encima de 5000x#CPUs es indicativo de un problema.
  • \Processor(*)\% Interrupt Time. Este contador mide el tiempo de procesador/CPU empleado en servir interrupciones, es decir, en realizar operaciones de entrada/salida como es el acceso a disco y la red. Por lo tanto, con valores altos de este contador debíamos plantearnos analizar el rendimiento del acceso a disco y red. Como referencia, se considera saludable un valor por debajo del 10%, deberemos empezar a preocuparnos si observamos valores entre el 10% y 20%, y una meseta por encima del 20% es indicativo de un problema.
  • System\Processor Queue Length. Este contador indica cuantos Hilos (Threads) están en la Cola, pendientes de poder ser ejecutados. Como referencia, su valor debe ser 0 ó 1, un valor entre 2 y 5 debería empezar a preocuparnos, y una meseta por encima de 5 es indicativo de un problema.

Despedida y Cierre

Hasta aquí llega el presente artículo, en el cual se ha intentado presentar un procedimiento algo formal para el análisis de los principales contadores de rendimiento de ayuda para la identificación de cuellos de botella de procesador o CPU.

Poco más por hoy. Como siempre, confío que la lectura resulte de interés.

 


Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.