¿Utilización de proceso incorrecta de eventos extendidos de mantenimiento del sistema?

10

Recientemente he estado trabajando para comprender los datos o las métricas que se almacenan en el archivo de eventos de eventos extendidos del estado del sistema.

Estamos tratando de implementar la recopilación de datos de métricas de rendimiento utilizando el estado del sistema como se proporciona aquí

Hay informes que proporcionan métricas como la UTILIZACIÓN de la CPU, la utilización de otros procesos, etc., que se recopilan del evento de mantenimiento del sistema denominado

scheduler_monitor_system_health_ring_buffer_recorded

Para algunos de mis servidores ocupados, no puedo entender por qué el campo "process_utilization" que aparece en el informe como utilización de CPU SQL es mayor a 100. En el tiempo pico varía entre 120-160 y debido a que el informe es siempre mostrando CPU por encima de 100, aunque cuando verifiqué desde el monitor de actividad de los servidores, ese nunca es el caso.

He planteado este problema en Github pero parece que no hay solución o respuesta.

Por lo tanto, mi pregunta sería

  1. ¿Cómo puedo obtener un número exacto para la utilización de CPU SQL para mis servidores utilizando el búfer de anillo de estado del sistema registrado?

  2. El informe también muestra el contador de menos de 2 campos calculados por su informe

  1. 100-System_idle-process_utilization como OtherProcessUtil

  2. 100-system_idle como SystemUtil

¿Para qué son necesarios / útiles estos OtherProcessUtil y SystemUtil ?

  1. También veo que la utilización de la memoria siempre se muestra como 100. Eso tampoco parece correcto. ¿Alguien lo ha notado?

Otras herramientas como Idera & sentry [que probé] no muestran el uso de CPU por encima del 100% para los mismos servidores. Hice una comparación lado a lado para la misma carga.

PrincipianteDBA
fuente

Respuestas:

1

Los valores para los contadores de% de disco y procesador que superan el 100% deben dividirse por la cantidad de procesadores o discos presentes en el sistema. Entonces, 100% significa que está usando el 100% de un procesador. 250% significaría que está usando dos procesadores y medio. Entonces, si informa un 120%, vea si eso es equivalente a 120 / <número de procesadores>.

Tenga en cuenta que el último cambio en tigertools fue en junio de 2018. Puede consultar sqlwatch.io, ya que parece ser un proyecto mucho más activo.

Consulte social.msdn.microsoft.com/Forums/sqlserver/en-US/… y simplemente cámbielo a TOP (1) para obtener el uso actual de la CPU SQL.

- Tony Hinkle

mv ٠〳comentario ٠〳respuesta
fuente