web-dev-qa-db-fra.com

Utilisation de processus incorrecte à partir des événements étendus de la santé du système?

J'ai récemment travaillé sur la compréhension des données ou des métriques stockées dans le fichier d'événements d'événements Santé Santé Santé.

Nous essayons de mettre en œuvre la collecte de données des métriques de performance à l'aide de la santé du système comme indiqué ici

Il existe des rapports qui donnent des mesures telles que l'utilisation de la CPU, une autre utilisation du processus, etc. étant collectées à partir de l'événement System Health nommé

scheduler_monitor_system_health_ring_buffer_recorded

Je ne suis pas capable de comprendre pour quelques-uns de mes serveurs occupés pourquoi le champ "Process_utilisation" qui est répertorié dans le rapport sous forme d'utilisation du processeur SQL supérieur à 100. En temps de pointe, il varie entre 120 et 1660 et en raison de laquelle le rapport est Montrant toujours la CPU ci-dessus 100 Même si lorsque j'ai vérifié à partir de serveurs, moniteur n'est jamais le cas.

J'ai soulevé cette question dans GitHub mais ne semble pas être corrigée ni réponse.

Par conséquent, ma question serait

  1. Comment puis-je obtenir un numéro précis pour l'utilisation du processeur SQL pour mes serveurs à l'aide de la mémoire tampon d'anneau de santé système enregistrée?

  2. Le rapport affiche également le compteur pour le dessous de 2 champs calculés selon leur rapport

  1. 100-system_idle-process_utilisation comme autreProcessutil

  2. 100-system_idle comme systémeutil

Quels sont ceux-ci autresProcessutil et Systemutil nécessaire/utile pour?

  1. Je vois aussi une utilisation de la mémoire à chaque fois-ci montrant toujours comme 100. Cela ne semble pas aussi correct. Quelqu'un a-t-il remarqué?

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

10
BeginnerDBA

Les valeurs pour le disque et le processeur% compteurs qui vont plus de 100% doivent être divisés par le nombre de processeurs ou de disques présents dans le système. Donc, 100% signifie qu'il utilise 100% d'un processeur. 250% signifieraient qu'il utilise deux processeurs et demi. Donc, si cela rend compte 120%, voyez si cela correspond à l'équivalent de 120/<nombre de processeurs>.

Notez que la dernière modification de Tigertools était en juin 2018. Vous pouvez vérifier SQLWatch.IO car il semble être un projet beaucoup plus actif.

Voir social.msdn.microsoft.com/forums/sqlserver/en-us/... Et simplement le changer en haut (1) pour obtenir l'utilisation actuelle de la CPU SQL.

- Tony hinke