Überwachen der CPU-Auslastung

Gilt für:SQL Server

Überwachen Sie eine Instanz von Microsoft SQL Server regelmäßig, um festzustellen, ob sich die CPU-Auslastungsraten in normalen Bereichen befinden. Eine fortlaufend hohe CPU-Auslastung kann darauf hindeuten, dass die CPU aktualisiert oder mehrere Prozessoren hinzugefügt werden muss. Alternativ kann eine hohe CPU-Auslastungsrate auf eine schlecht abgestimmte oder entworfene Anwendung hinweisen. Eine Optimierung der Anwendung kann die CPU-Nutzung senken.

Eine effiziente Möglichkeit zum Ermitteln der CPU-Auslastung besteht darin, den Prozessor:% Prozessorzeitzähler in Leistungsmonitor zu verwenden. Dieser Leistungsindikator überwacht die Zeit, die die CPU zur Verarbeitung eines Threads benötigt, der sich nicht im Leerlauf befindet. Ein konsistenter Zustand von 80 % bis 90 Prozent kann darauf hindeuten, dass Die CPU aktualisiert oder weitere Prozessoren hinzugefügt werden muss. Bei Multiprozessorsystemen sollte für jeden Prozessor eine separate Instanz dieses Leistungsindikators überwacht werden. Dieser Wert stellt die Summe der Prozessorzeit für einen bestimmten Prozessor dar. Um den Durchschnitt für alle Prozessoren zu ermitteln, müssen Sie dagegen den Leistungsindikator System: Gesamtprozessorzeit (%) aufrufen.

Darüber hinaus können Sie die Prozessornutzung aber auch über die folgenden Leistungsindikatoren überwachen:

  • Prozessor: Privilegierte Zeit (%)

    Entspricht dem Prozentsatz der Zeit, die der Prozessor für die Ausführung von Microsoft Windows-Kernelbefehlen aufwendet, z. B. die Verarbeitung von SQL Server-E/A-Anforderungen. Sollte dieser Leistungsindikator bei hohen Werten für die Leistungsindikatoren Physischer Datenträger gleich bleibend hoch sein, sollten Sie die Installation eines schnelleren oder effizienteren Datenträgersubsystems in Erwägung ziehen.

    Hinweis

    Unterschiedliche Datenträgercontroller und -treiber benötigen unterschiedlich viel Zeit für die Kernelverarbeitung. Effiziente Controller und Treiber beanspruchen weniger privilegierte Zeit und überlassen Benutzeranwendungen so mehr Verarbeitungszeit, wodurch der Durchsatz insgesamt steigt.

  • Prozessor: Benutzerzeit (%)

    Entspricht dem Prozentsatz der Zeit, die der Prozessor für die Ausführung von Benutzerprozessen wie SQL Server aufwendet.

  • System: Prozessor-Warteschlangenlänge

    Gibt die Anzahl der Threads an, die auf Prozessorzeit warten. Ein Prozessorengpass entsteht, wenn die Threads eines Prozesses mehr Prozessorzyklen benötigen, als zur Verfügung stehen. Wenn viele Prozesse versuchen, Prozessorzeit zu beanspruchen, müssen Sie ggf. einen schnelleren Prozessor installieren. Bei einem Multiprozessorsystem könnten Sie auch einen Prozessor hinzufügen.

Berücksichtigen Sie bei der Untersuchung der Prozessorverwendung die Art der Arbeit, die von der SQL Server-Instanz ausgeführt wird. Wenn SQL Server viele Berechnungen durchführt, z. B. Abfragen mit Aggregaten oder speichergebundenen Abfragen, die keine Datenträger-E/A erfordern, können 100 Prozent der Prozessorzeit verwendet werden. Wenn dies bewirkt, dass die Leistung anderer Anwendungen leidet, versuchen Sie, die Arbeitsauslastung zu ändern. Verwenden Sie z. B. den Computer, um die Instanz von SQL Server auszuführen.

Die Nutzungsraten von rund 100 Prozent, bei denen viele Clientanforderungen verarbeitet werden, können darauf hinweisen, dass Prozesse in der Warteschlange stehen, auf die Prozessorzeit warten und einen Engpass verursachen. Lösen Sie das Problem, indem Sie das System durch leistungsstärkere Prozessoren ergänzen.