Freigeben über


Überwachen der CPU-Auslastung

Ü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 hinweisen, 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. Die Optimierung der Anwendung kann die CPU-Auslastung verringern.

Eine effiziente Möglichkeit zur Ermittlung der CPU-Auslastung besteht darin, den Processor:% Processor Time Zähler im Systemmonitor zu verwenden. Dieser Indikator überwacht die Zeitspanne, die die CPU für die Ausführung eines Threads aufwendet, der nicht im Leerlauf ist. Ein konsistenter Zustand von 80 % bis 90 Prozent kann darauf hindeuten, dass Die CPU aktualisiert oder weitere Prozessoren hinzugefügt werden muss. Überwachen Sie für Multiprozessorsysteme eine separate Instanz dieses Leistungsindikators für jeden Prozessor. Dieser Wert stellt die Summe der Prozessorzeit für einen bestimmten Prozessor dar. Um den Mittelwert für alle Prozessoren zu ermitteln, verwenden Sie stattdessen den Prozessorzeitzähler %Total .

Optional können Sie auch die folgenden Leistungsindikatoren überwachen, um die Prozessornutzung zu ü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. Wenn dieser Leistungsindikator konsistent hoch ist, wenn die Physischen Datenträgerzähler hoch sind, erwägen Sie die Installation eines schnelleren oder effizienteren Datenträgersubsystems.

    Hinweis

    Verschiedene Datenträgercontroller und Treiber verwenden unterschiedliche Kernelverarbeitungszeiten. Effiziente Controller und Treiber verwenden weniger privilegierte Zeit, sodass mehr Verarbeitungszeit für Benutzeranwendungen verfügbar ist und der Gesamtdurchsatz erhöht wird.

  • Prozessor: %User Prozesszeit

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

  • System: Länge der Prozessorwarteschlange

    Entspricht der Anzahl der Threads, die auf die Prozessorzeit warten. Ein Prozessorengpass entwickelt sich, wenn die Threads eines Prozesses mehr Prozessorzyklen benötigen, als verfügbar sind. Wenn mehr als ein paar Prozesse versuchen, die Zeit des Prozessors zu nutzen, müssen Sie möglicherweise einen schnelleren Prozessor installieren. Oder wenn Sie über ein Multiprozessorsystem verfügen, können Sie 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 dazu führt, dass die Leistung anderer Anwendungen beeinträchtigt wird, versuchen Sie, die Arbeitsauslastung zu ändern. Widmen Sie z. B. den Computer der Ausführung einer SQL-Server-Instanz.

Die Nutzungsraten von rund 100 Prozent, bei denen viele Clientanforderungen verarbeitet werden, können darauf hindeuten, dass Prozesse in der Warteschlange stehen, auf die Prozessorzeit warten und einen Engpass verursachen. Beheben Sie das Problem, indem Sie schnellere Prozessoren hinzufügen.