Falsche Prozessauslastung aufgrund erweiterter Ereignisse im Systemzustand?

10

Ich habe kürzlich daran gearbeitet, die Daten oder Metriken zu verstehen, die in der Ereignisdatei für erweiterte Ereignisse im Systemzustand gespeichert sind.

Wir versuchen, die Datenerfassung von Leistungsmetriken unter Verwendung des hier bereitgestellten Systemzustands zu implementieren

Es gibt Berichte, die Metriken wie CPU-Auslastung, andere Prozessauslastung usw. enthalten, die aus dem genannten Systemintegritätsereignis erfasst werden

scheduler_monitor_system_health_ring_buffer_recorded

Ich kann für einige meiner ausgelasteten Server nicht verstehen, warum das Feld "process_utilization", das im Bericht als SQL-CPU-Auslastung aufgeführt ist, meistens über 100 liegt. In der Spitzenzeit variiert es zwischen 120 und 160 und aufgrund dessen ist der Bericht Es wird immer eine CPU über 100 angezeigt, obwohl dies beim Aktivitätsmonitor des Servers nie der Fall war.

Ich habe dieses Problem in Github angesprochen, aber es scheint keine Lösung oder Antwort zu geben.

Daher wäre meine Frage

  1. Wie kann ich mithilfe des aufgezeichneten System Health Ring Puffers eine genaue Zahl für die SQL-CPU-Auslastung meiner Server ermitteln?

  2. Der Bericht zeigt auch den Zähler für weniger als 2 Felder an, die pro Bericht berechnet wurden

  1. 100-System_idle-process_utilization as OtherProcessUtil

  2. 100-system_idle als SystemUtil

Wofür werden diese OtherProcessUtil und SystemUtil benötigt / hilfreich?

  1. Ich sehe auch, dass die Speicherauslastung jedes Mal immer als 100 angezeigt wird. Das scheint auch nicht richtig zu sein. Hat es jemand bemerkt?

Andere Tools wie Idera & Sentry [die ich getestet habe] zeigen keine CPU-Auslastung über 100% für dieselben Server. Ich habe einen Nebeneinander-Vergleich für dieselbe Ladung durchgeführt.

BeginnerDBA
quelle

Antworten:

1

Werte für Festplatten- und Prozessor-% -Zähler, die über 100% liegen, sollten durch die Anzahl der im System vorhandenen Prozessoren oder Festplatten geteilt werden. 100% bedeutet also, dass 100% eines Prozessors verwendet werden. 250% würden bedeuten, dass zweieinhalb Prozessoren verwendet werden. Wenn also 120% gemeldet werden, prüfen Sie, ob dies 120 / <Anzahl der Prozessoren> entspricht.

Beachten Sie, dass die letzte Änderung an tigertools im Juni 2018 erfolgte. Sie können sich sqlwatch.io ansehen, da es sich um ein viel aktiveres Projekt handelt.

Siehe social.msdn.microsoft.com/Forums/sqlserver/en-US/… und ändern Sie es einfach in TOP (1), um die aktuelle SQL-CPU-Auslastung zu erhalten.

- Tony Hinkle

mv Kommentar Kommentar
quelle