Freigeben über


Problembehandlung hoher CPU-Auslastung in AKS-Clustern

Hohe CPU-Auslastung ist ein Symptom für eine oder mehrere Anwendungen oder Prozesse, die so viel CPU-Zeit erfordern, dass die Leistung oder Nutzbarkeit des Computers beeinträchtigt wird. Hohe CPU-Auslastung kann auf viele Arten auftreten, aber sie wird hauptsächlich durch die Benutzerkonfiguration verursacht.

Wenn ein Knoten in einem Azure Kubernetes Service (AKS) -Cluster eine hohe CPU-Auslastung aufweist, können die darauf ausgeführten Anwendungen leistungs- und zuverlässigkeitseinbußen auftreten. Auch Anwendungen oder Prozesse werden instabil, was zu Problemen führen kann, die über langsame Reaktionen hinausgehen.

Dieser Artikel hilft Ihnen, die Knoten und Container zu identifizieren, die hohe CPU verbrauchen, und bietet bewährte Methoden zum Auflösen der hohen CPU-Auslastung.

Symptome

In der folgenden Tabelle sind die allgemeinen Symptome einer hohen CPU-Auslastung beschrieben:

Symptom Beschreibung
CPU-Starvation CPU-intensive Anwendungen verlangsamen andere Anwendungen auf demselben Knoten.
Langsame Zustandsänderungen Pods können länger dauern, bis sie bereit sind.
NotReady-Knotenstatus Ein Knoten wechselt in den NotReady-Zustand . Dieses Problem tritt auf, da der Container mit hoher CPU-Auslastung bewirkt, dass das Befehlszeilentool Kubectl nicht reagiert.

Checkliste zur Problembehandlung

Verwenden Sie effektive Überwachungstools, und wenden Sie bewährte Methoden an, um eine hohe CPU-Auslastung zu beheben.

Schritt 1: Identifizieren von Knoten/Containern mit hoher CPU-Auslastung

Verwenden Sie eine der folgenden Methoden, um Knoten und Container mit hoher CPU-Auslastung zu identifizieren:

  • Verwenden Sie in einem Webbrowser das Feature "Containereinblicke" von AKS im Azure-Portal.

  • Verwenden Sie in einer Konsole das Befehlszeilentool Kubernetes (Kubectl).

Container Insights ist ein Feature in AKS. Es wurde entwickelt, um die Leistung von Containerworkloads zu überwachen. Sie können Containererkenntnisse verwenden, um Knoten, Container oder Pods zu identifizieren, die eine hohe CPU-Auslastung fördern.

Führen Sie die folgenden Schritte aus, um Knoten, Container oder Pods zu identifizieren, die eine hohe CPU-Auslastung steuern:

  1. Navigieren Sie vom Azure-Portal zum Cluster.

  2. Wählen Sie unter Überwachung die Option Erkenntnisse aus.

    Screenshot der Überwachung unter Insights

  3. Legen Sie den entsprechenden Zeitraum fest.

    Screenshot eines Zeitraums von sechs Stunden.

  4. Suchen Sie die Knoten mit hoher CPU-Auslastung, und überprüfen Sie, ob die Cpu-Auslastung des Knotens stabil ist.

    Wählen Sie Knoten aus. Legen Sie die Metrik auf cpu-Auslastung (Millicores) fest, und legen Sie das Beispiel auf "Max" fest. Verwenden Sie das Sortierfeature auf dem Max , um die Knoten nach Max% zu sortieren. Die Knoten mit der höchsten CPU-Auslastung werden oben angezeigt.

    Im folgenden Screenshot verwendet der Knoten nur 12 % der maximalen CPU und wird 16 Tage lang ausgeführt.

    Screenshot der Knoten unter der Überwachungsauswahl.

  5. Nachdem Sie die Knoten mit hoher CPU-Auslastung gefunden haben, wählen Sie die Knoten aus, um pods auf ihnen und deren CPU-Auslastung zu finden.

    Screenshot der Option

    Notiz

    Der Prozentsatz der CPU- oder Speicherauslastung für Pods basiert auf der für den Container angegebenen CPU-Anforderung. Er stellt nicht den Prozentsatz der CPU- oder Speicherauslastung für den Knoten dar. Sehen Sie sich also die tatsächliche CPU- oder Speicherauslastung anstelle des Prozentsatzes der CPU- oder Speicherauslastung für Pods an.

    Sobald Sie die Liste der Pods mit hoher CPU-Auslastung erhalten, können Sie sie den Anwendungen zuordnen, die die Spitzen der CPU-Auslastung verursachen.

Schritt 2: Überprüfen bewährter Methoden, um eine hohe CPU-Auslastung zu vermeiden

In der folgenden Tabelle erfahren Sie, wie Sie bewährte Methoden implementieren, um eine hohe CPU-Auslastung zu vermeiden:

Bewährte Methode Beschreibung
Festlegen geeigneter Grenzwerte für Container Kubernetes ermöglicht es, Anforderungen und Grenzwerten für die Ressourcen für Container anzugeben. Ressourcenanforderungen und -grenzwerte stellen die minimale und maximale Anzahl von Ressourcen dar, die ein Container verwenden kann. Es wird empfohlen, geeignete Anforderungen und Grenzwerte festzulegen, um die entsprechende Kubernetes Quality of Service (QoS) -Klasse für jeden Pod auszuwählen.
Aktivieren der automatischen horizontalen Podskalierung (HPA) Das Festlegen geeigneter Grenzwerte in Kombination mit der Aktivierung von HPA kann dazu beitragen, eine hohe CPU-Auslastung zu beheben.
Auswählen höherer SKU-VMs Verwenden Sie höhere SKU-VMs, um hohe CPU-Workloads verarbeiten zu können. Erstellen Sie dazu einen neuen Knotenpool, sperren Sie die Knoten ab, damit sie nicht planbar sind, und leeren Sie den vorhandenen Knotenpool.
Isolieren von System- und Benutzerworkloads Es wird empfohlen, einen separaten Knotenpool (neben dem Agentpool) zu erstellen, um Ihre Workloads auszuführen. Dadurch kann verhindert werden, dass der Systemknotenpool überlastet wird, und die Leistung wird verbessert.

References

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.