Utilisation incorrecte des processus à partir des événements étendus d'intégrité système?


10

J'ai récemment travaillé sur la compréhension des données ou des mesures stockées dans le fichier d'événements d'événements de santé système.

Nous essayons de mettre en œuvre la collecte de données de mesures de performances en utilisant l'intégrité du système comme indiqué ici

Il existe des rapports qui fournissent des mesures telles que l'UTILISATION DU CPU, l'utilisation d'autres processus, etc., collectées à partir de l'événement d'intégrité du système nommé

scheduler_monitor_system_health_ring_buffer_recorded

Je ne suis pas en mesure de comprendre pour quelques-uns de mes serveurs occupés pourquoi le champ "process_utilization" qui est répertorié dans le rapport comme utilisation du processeur SQL est généralement supérieur à 100. En période de pointe, il varie entre 120-160 et à cause duquel le rapport est montrant toujours le processeur au-dessus de 100, même si je vérifie depuis le moniteur d'activité des serveurs, ce n'est jamais le cas.

J'ai soulevé ce problème dans Github, mais il ne semble pas y avoir de correctif ou de réponse.

Par conséquent, ma question serait

  1. Comment puis-je obtenir un nombre précis d'utilisation du processeur SQL pour mes serveurs à l'aide du tampon d'anneau d'intégrité système enregistré?

  2. Le rapport montre également le compteur pour moins de 2 champs calculés par leur rapport

  1. 100-System_idle-process_utilization as OtherProcessUtil

  2. 100-system_idle en tant que SystemUtil

À quoi ces autres processus et systèmes sont - ils nécessaires / utiles?

  1. Je vois également une utilisation de la mémoire à chaque fois toujours égale à 100. Cela ne semble pas correct non plus. Quelqu'un l'a-t-il remarqué?

D'autres outils comme Idera & sentry [que j'ai testé] ne montrent pas une utilisation du processeur supérieure à 100% pour les mêmes serveurs. J'ai fait une comparaison côte à côte pour la même charge.

Réponses:


1

Les valeurs des disques et des processeurs% dépassant 100% doivent être divisées par le nombre de processeurs ou de disques présents dans le système. 100% signifie donc qu'il utilise 100% d'un processeur. 250% signifierait qu'il utilise deux processeurs et demi. Donc, s'il rapporte 120%, voyez si c'est l'équivalent de 120 / <nombre de processeurs>.

Notez que la dernière modification de tigertools date de juin 2018. Vous pouvez consulter sqlwatch.io car il semble que ce soit un projet beaucoup plus actif.

Voir social.msdn.microsoft.com/Forums/sqlserver/en-US/… et changez-le simplement en TOP (1) pour obtenir l'utilisation actuelle du processeur SQL.

- Tony Hinkle

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.