Problembehebung bei der Performance von Azure-VMs unter Linux oder Windows

Gilt für: ✔️ Linux-VMs Windows VMs ✔️

Zusammenfassung

Dieser Artikel beschreibt die allgemeine Behandlung von Leistungsproblemen bei virtuellen Computern (VMs) durch Überwachen und Beobachten von Leistungsengpässen und bietet mögliche Korrekturen für Probleme, die auftreten können. Neben Überwachung können Sie auch Perfinsights verwenden, um einen Bericht mit Best Practice-Empfehlungen und wichtigen Engpässen rund um E/A, CPU und Arbeitsspeicher bereitzustellen. Perfinsights ist sowohl für Windows als auch für Linux VMs in Azure verfügbar.

In diesem Artikel wird die Verwendung von Überwachung zur Diagnose von Leistungsengpässen erläutert.

Aktivieren der VM-Diagnose über Azure Portal

So aktivieren Sie die VM-Diagnose:

  1. Wechseln Sie zum virtuellen Computer.

  2. Wählen Sie im Abschnitt "Überwachung " die Option "Diagnoseeinstellungen" aus.

  3. Wählen Sie ein Speicherkonto und dann " Überwachung auf Gastebene aktivieren" aus.

    Screenshot: Schritte zum Aktivieren der VM-Diagnose.

Anzeigen von Speicherkontometriken über Azure Portal (für nicht verwaltete Datenträger)

Für die virtuellen Computer, die nicht verwaltete Datenträger verwenden, ist der Speicher eine sehr wichtige Stufe, wenn wir die E/A-Leistung analysieren möchten. Für speicherbezogene Metriken müssen wir die Diagnose als zusätzlichen Schritt aktivieren:

Identifizieren Sie, welches Speicherkonto (oder welche Konten) Ihre VM verwendet, indem Sie den virtuellen Computer auswählen:

  1. Wählen Sie im Azure-Portal Ihren virtuellen Computer aus.
  2. Wählen Sie unter "Einstellungen" die Option "Datenträger" aus, und suchen Sie dann das Speicherkonto, auf dem der Datenträger gespeichert ist.
  3. Navigieren Sie zum Speicherkonto, und wählen Sie "Metriken" aus.

Erkennen von Leistungsengpässen

Nachdem wir den anfänglichen Einrichtungsvorgang für die erforderlichen Metriken abgeschlossen und die Diagnose für die VM und das zugehörige Speicherkonto aktiviert haben, können wir in die Analysephase wechseln.

Zugriff auf die Überwachung

Wählen Sie im Azure Portal den Azure virtuellen Computer aus, den Sie untersuchen möchten, wählen Sie Metrics den Abschnitt Monitoring und dann eine Metrik aus.

Screenshot, der zeigt, wie Die Seite

Beobachtungszeitskalen

Um zu bestimmen, ob Ressourcenengpässe vorliegen, überprüfen Sie Ihre Daten. Wenn Sie feststellen, dass Ihr Computer einwandfrei läuft, aber kürzlich eine Leistungsabnahme gemeldet wurde, überprüfen Sie den Datenzeitraum, der die Leistungsmetrikdaten vor, während und nach dem gemeldeten Problem umfasst.

CPU auf Engpässe überprüfen

Screenshot: Schritte zum Überprüfen des CPU-Engpasses.

  1. Legen Sie den Zeitraum fest.
  2. Wählen Sie in "Metrik" den CPU-Prozentsatz aus.

Seien Sie sich bei der Untersuchung von Leistungsproblemen der Trends bewusst, und bemühen Sie sich darum, sie zu verstehen, wenn sie Sie betreffen. In den nächsten Abschnitten verwenden wir die Überwachungsdiagramme aus dem Portal, um Trends zu veranschaulichen. Sie können außerdem für Querverweise auf abweichendes Ressourcenverhalten innerhalb des gleichen Zeitraums nützlich sein. Klicken Sie zum Anpassen der Diagramme auf Azure Monitor Data Platform.

Spitzen: Spitzen können mit einer geplanten Aufgabe/einem bekannten Ereignis zusammenhängen. Wenn Sie die Aufgabe identifizieren können, bestimmen Sie, ob die Aufgabe auf der erforderlichen Leistungsstufe ausgeführt wird. Wenn die Leistung akzeptabel ist, müssen Sie möglicherweise keine weiteren Ressourcen zuweisen.

Steiler Anstieg und Konstant – Zeigt oft eine neue Arbeitsbelastung an. Wenn die Workload nicht bekannt ist, aktivieren Sie Überwachung in der VM, um herauszufinden, welcher Prozess (oder Prozesse) dieses Verhalten verursacht. Sobald der Prozess bekannt ist, bestimmen Sie, ob sein höherer Ressourcenverbrauch durch ineffizienten Code oder normalen Verbrauch verursacht wird. Wenn es sich um normalen Verbrauch handelt, bestimmen Sie, ob der Prozess auf dem erforderlichen Leistungsniveau betrieben wird.

Konstant: Bestimmen Sie, ob Ihre VM immer auf diesem Niveau läuft oder ob sie erst auf diesem Niveau ausgeführt wird, seit die Diagnosen aktiviert wurden. Wenn dies der Fall ist, identifizieren Sie die Prozesse, die das Problem verursachen, und erwägen Sie, mehr von der betroffenen Ressourcen hinzuzufügen.

Stetige Zunahme: Ein ständiger Anstieg im Ressourcenverbrauch ist oftmals entweder auf ineffizienten Code oder auf einen Prozess zurückzuführen, der mehr Benutzerworkload übernimmt.

Wartungsmaßnahmen bei hoher CPU-Auslastung

Wenn Ihre Anwendung oder Ihr Prozess nicht optimal ausgeführt wird und die CPU-Auslastung über 95%liegt, können Sie eine der folgenden Aufgaben ausführen:

  • Zur sofortigen Abhilfe: Erhöhen Sie die Größe der VM auf eine Größe, die mehr Kerne aufweist
  • Verstehen des Problems: Bestimmen Sie die Anwendung/den Prozess, und führen Sie eine entsprechende Problembehandlung durch.

Wenn Sie die VM vergrößert haben und die CPU immer noch zu 95 % ausgelastet ist, bestimmen Sie, ob diese Einstellung bessere Leistung oder einen höheren Anwendungsdurchsatz auf einer akzeptablen Stufe bietet. Führen Sie andernfalls eine Problembehandlung der einzelnen Anwendung/des einzelnen Prozesses durch.

Sie können Perfinsights für Windows oder Linux verwenden, um den CPU-Verbrauch zu analysieren.

Prüfen auf Speicherengpass

Um die Metriken anzuzeigen:

  1. Fügen Sie einen Abschnitt hinzu.
  2. Fügen Sie eine Kachel hinzu.
  3. Öffnen Sie die Galerie.
  4. Wählen Sie „Speicherauslastung“ aus und ziehen Sie. Wenn die Kachel angedockt ist, klicken Sie mit der rechten Maustaste, und wählen Sie 6x4 aus.

Die Speicherauslastung zeigt Ihnen, wie viel Arbeitsspeicher von der VM verbraucht wird. Verstehen Sie den Trend, und überprüfen Sie, ob er sich den Zeiten zuordnen lässt, zu denen Sie Probleme beobachten. Sie sollten zu jeder Zeit mehr als 100 MB verfügbaren Arbeitsspeicher haben.

Spitze und konstante/gleichmäßige Auslastung: Hohe Speicherauslastung ist möglicherweise nicht die Ursache schlechter Leistung, da einige Anwendungen, wie etwa relationale Datenbank-Engines, eine große Menge Arbeitsspeicher zuordnen, und diese Auslastung möglicherweise nicht signifikant ist. Wenn mehrere speicherhungrige Anwendungen ausgeführt werden, kann jedoch schlechte Leistung aufgrund der Konkurrenz um Arbeitsspeicher auftreten, was zu Zuschneiden und Auslagern auf Datenträger führen kann. Diese schlechte Leistung ist oftmals eine bemerkbare Ursache für die Beeinträchtigung der Anwendungsleistung.

Langsam ansteigender Verbrauch – Dieser Verbrauch deutet auf ein mögliches „Aufwärmen“ der Anwendung hin und tritt häufig bei der Inbetriebnahme von Datenbank-Engines auf. Es könnte jedoch ebenso ein Hinweis auf ein Speicherleck in einer Anwendung sein. Identifizieren Sie die Anwendung, und verstehen Sie, ob es sich um ein erwartetes Verhalten handelt.

Seiten- oder Auslagerungsdateinutzung – Überprüfen Sie, ob Sie die Windows Paging-Datei (befindet sich auf D:) oder die Linux Swap-Datei (befindet sich auf /dev/sdb) stark verwenden. Wenn auf diesen Volumes außer diesen Dateien nichts vorhanden ist, überprüfen Sie die Datenträger auf eine hohe Anzahl an Lese-/Schreibvorgängen. Dieses Problem weist auf einen Zustand mit wenig Arbeitsspeicher hin.

Wartungsmaßnahme bei hoher Speicherauslastung

Um hohe Speicherauslastung zu beheben, führen Sie eine der folgenden Aufgaben aus:

  • Für sofortige Abhilfe bei der Nutzung der Auslagerungsdatei oder des Pagespeichers: Erhöhen Sie die Größe der VM auf eine mit mehr Arbeitsspeicher und überwachen Sie dann das System.
  • Verstehen des Problems: Spüren Sie Anwendungen/Prozesse auf, und führen Sie dann eine Problembehandlung aus, um Anwendungen mit hohem Speicherverbrauch zu ermitteln.
  • Wenn Sie die Anwendung kennen, prüfen Sie, ob die Speicherzuweisung gedeckelt werden kann.

Wenn Sie nach dem Upgrade auf eine größere VM feststellen, dass Sie immer noch eine konstante ständige Zunahme bis 100 % verzeichnen, identifizieren Sie die Anwendung/den Prozess, und führen Sie eine Problembehandlung durch.

Sie können Perfinsights für Windows oder Linux verwenden, um den Speicherverbrauch zu analysieren.

Überprüfen auf Datenträgerengpässe (bei nicht verwalteten Datenträgern)

Um das Speichersubsystem für den virtuellen Computer zu überprüfen, überprüfen Sie die Diagnose auf Azure VM-Ebene mithilfe der Leistungsindikatoren in der VM-Diagnose und auch der Speicherkontodiagnose.

Für die vmspezifische Problembehandlung können Sie Perfinsights für Windows oder Linux verwenden, was dazu beitragen kann, zu analysieren, welcher Prozess den E/A-Vorgängen vorantreibt.

Beachten Sie, dass wir keine Zähler für zonenredundante und Storage Premium-Konten haben. Bei Problemen im Zusammenhang mit diesen Zählern öffnen Sie eine Supportanfrage.

Anzeigen der Speicherkontodiagnose in der Überwachung

Um an den Elementen unten zu arbeiten, wechseln Sie zum Speicherkonto für die VM im Portal:

Screenshot: Schritte zum Anzeigen der Speicherkonto-Diagnose im Überwachungssystem.

  1. Legen Sie den Zeitraum fest.
  2. Stellen Sie Metric Namespace auf Blob ein.
  3. Setzen Sie Metrik auf Verfügbarkeit.

Um Probleme mit dem Speicher zu erkennen, sehen Sie sich die Leistungsmetriken der Speicherkontodiagnose und der VM-Diagnose an.

Suchen Sie für jede Überprüfung unten nach Schlüsseltrends, die auftreten, wenn die Probleme innerhalb des Zeitbereichs des Problems liegen.

Überprüfen Sie die Azure-Speicherverfügbarkeit – Fügen Sie die Metrik "Speicherkonto: Verfügbarkeit" hinzu

Wenn ein Rückgang der Verfügbarkeit angezeigt wird, kann ein Problem mit der Plattform auftreten, überprüfen Sie den Azure Status. Wenn hier kein Problem angezeigt wird, öffnen Sie eine neue Supportanfrage.

Azure-Speichertimeout prüfen und Speicherkonten-Metriken hinzufügen

  • ClientTimeOutError
  • ServerTimeOutError
  • DurchschnittlicheE2ELatenz
  • DurchschnittlicheServerLatenz
  • Gesamtanfragen

Werte in den *TimeOutError-Metriken geben an, dass eine I/O-Operation zu lange gedauert hat und eine Zeitüberschreitung aufgetreten ist. Mit der Durchführung der nächsten Schritte können mögliche Ursachen identifiziert werden.

AverageServerLatency und TimeOutErrors, die gleichzeitig ansteigen, könnten auf ein Plattformproblem hinweisen. Öffnen Sie in dieser Situation eine neue Supportanfrage.

AverageE2ELatency stellt die Clientlatenz dar. Überprüfen Sie, wie die IOPS von der Anwendung ausgeführt wird. Suchen Sie nach einem Anstieg oder einer konstant hohen TotalRequests-Metrik. Diese Metrik stellt IOPS dar. Wenn Sie beginnen, die Grenze des Speicherkontos oder der einzelnen virtuellen Festplatte zu erreichen, kann die Latenz auf Drosselung zurückzuführen sein.

Überprüfung auf Azure-Speicherdrosselung – Hinzufügen der Speicherkontodaten: ThrottlingError

Die Werte für die Drosselung deuten darauf hin, dass Sie auf der Speicherkontoebene gedrosselt werden, was bedeutet, dass das IOPS-Limit des Kontos überschritten wurde. Sie können bestimmen, ob Sie sich dem IOPs-Schwellenwert annähern, indem Sie die Metrik TotalRequests überprüfen.

Beachten Sie, dass jede virtuelle Festplatte einen Grenzwert von 500 IOPS oder 60 MBit aufweist, jedoch durch den kumulativen Grenzwert von 20.000 IOPS pro Speicherkonto gebunden ist.

Auf der Grundlage dieser Metrik können Sie nicht bestimmen, welcher Blob die Drosselung bewirkt und welche Blobs von ihr betroffen sind. Klar ist jedoch, dass Sie entweder auf das IOPS-Limit oder das Ingress-/Egress-Limit des Speicherkontos stoßen.

Um zu bestimmen, ob Sie den IOPS-Grenzwert erreichen, wechseln Sie zur Speicherkontodiagnose, und überprüfen Sie TotalRequests, um festzustellen, ob Sie sich an die 20 tausend TotalRequests annähern. Bestimmen Sie, ob es eine Änderung im Muster gibt, ob Sie diesen Grenzwert zum ersten Mal sehen oder ob dieser Grenzwert zu einer bestimmten Zeit eintritt.

Mit neuen Datenträgerangeboten unter Storage Standard können die IOPS- und Durchsatzlimits abweichen, aber das kumulative Limit für das Storage Standard-Speicherkonto beträgt 20.000 IOPS (Storage Premium hat unterschiedliche Grenzwerte auf Konto- oder Datenträgerebene). Weitere Informationen zu Standard-Speicherlösungsangeboten und Grenzen je Datenträger:

Quellenangaben

Die Bandbreite des Speicherkontos wird mithilfe folgender Speicherkontometriken gemessen: TotalIngress und TotalEgress. Je nach Art der Redundanz und Regionen gibt es unterschiedliche Schwellenwerte für Bandbreite:

Vergleichen Sie TotalIngress und TotalEgress mit den Grenzwerten für Ingress und Egress für den Redundanztyp und die Region des Speicherkontos.

Überprüfen Sie die Grenzwerte für den Durchsatz der mit der VM verbundenen VHDs. Fügen Sie die VM-Metriken „Datenträgerlesevorgänge“ und „Datenträgerschreibvorgänge“ hinzu.

Neue Datenträgerangebote im Standard-Speicher weisen unterschiedliche IOPS- und Durchsatzlimits auf (IOPS sind nicht pro VHD verfügbar). Sehen Sie sich die Daten an, um festzustellen, ob Sie mithilfe von Datenlese- und -schreibvorgängen die Grenzwerte des kombinierten Durchsatzes der VHD(s) in MB auf der VM-Ebene erreichen, und optimieren Sie dann Ihre VM-Speicherkonfiguration, um über die Grenzwerte einzelner VHDs hinaus zu skalieren. Weitere Informationen zu Grenzwerten pro Datenträger sowie Standard-Speicherdatenträgerangeboten:

Wartung bei hoher Datenträgerverwendung/Latenz

Verringern der Clientlatenz und Optimieren der VM-E/A, um eine Skalierung jenseits der VHD-Grenzwerte zu erreichen

Drosselung verringern

Wenn die oberen Grenzwerte der Speicherkonten erreicht werden, verteilen Sie die VHDs neu auf die einzelnen Speicherkonten. Weitere Informationen finden Sie unter Azure Storage Skalierbarkeit und Leistungsziele.

Vergrößern des Durchsatzes und Verringern der Latenz

Wenn Sie über eine sensible Latenzanwendung verfügen und einen hohen Durchsatz erfordern, migrieren Sie Ihre VHDs mithilfe der VM der DS- und GS-Serie zu Azure Premium-Speicher.

Die spezifischen Szenarien werden in diesen Artikeln besprochen: