Fehlerbehebung bei Leistungsproblemen bei Compute-Instanzen


In diesem Dokument erfahren Sie, wie Sie CPU-, Arbeitsspeicher- und Speicherleistungsprobleme auf Compute Engine-VM- und Bare-Metal-Instanzen diagnostizieren und beheben.

Hinweise

Leistungsmesswerte ansehen

Verwenden Sie die Cloud Monitoring-Messwerte zur Beobachtbarkeit, die in der Google Cloud Console verfügbar sind, um Leistungsmesswerte für Ihre Compute-Instanzen aufzurufen.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Sie können Messwerte für einzelne Instanzen oder für die fünf Instanzen anzeigen, die die größte Menge einer Ressource verbrauchen.

    So rufen Sie Messwerte für einzelne Instanzen auf:

    1. Klicken Sie auf den Namen der Instanz, für die Sie Leistungsmesswerte aufrufen möchten. Die Seite mit den Instanzdetails wird geöffnet.

    2. Klicken Sie auf den Tab Beobachtbarkeit, um die Seite Übersicht für die Beobachtbarkeit zu öffnen.

    Klicken Sie auf der Seite VM-Instanzen auf den Tab Beobachtbarkeit, um Messwerte für die fünf Instanzen aufzurufen, die die größte Menge einer Ressource verbrauchen.

  3. Sehen Sie sich die Leistungsmesswerte der Instanz an. Sehen Sie sich die Abschnitte Übersicht, CPU, Arbeitsspeicher, Netzwerk und Laufwerk an, um detaillierte Messwerte zu jedem Thema zu sehen. Die folgenden Hauptmesswerte geben die Instanz-Leistung an:

    • Auf der Seite Übersicht:

      • CPU-Auslastung. Der Prozentsatz der CPU, der von der Instanz verwendet wird.

      • Arbeitsspeicherauslastung. Der von der Instanz verwendete Prozentsatz des Arbeitsspeichers ohne Laufwerk-Caches. Bei Instanzen, die ein Linux-Betriebssystem verwenden, ist der Kernel-Speicher ebenfalls nicht enthalten.

      • Netzwerk-Traffic. Die durchschnittliche Rate gesendeter und empfangener Byte in Intervallen von einer Minute.

      • Neue Verbindungen zu VMs / externen Quellen / Google. Die geschätzte Anzahl unterschiedlicher TCP/UDP-Flüsse in einer Minute, gruppiert nach Peer-Typ.

      • Laufwerkdurchsatz. Die durchschnittliche Rate von Byte, die auf Laufwerke geschrieben und von dort gelesen werden.

      • Laufwerk-IOPS. Die durchschnittliche Rate von E/A-Lese- und -Schreibvorgängen auf Laufwerken.

    • Auf der Seite Netzwerkzusammenfassung:

      • An VMs / externe Ziele / Google gesendet. Die Rate des Netzwerk-Traffics, der an Google-Dienste, Instanzen und externe Ziele gesendet wird, anhand einer Stichprobe von Paketen. Der Messwert wird so skaliert, dass die Summe mit dem gesamten gesendeten Netzwerk-Traffic übereinstimmt.

      • Von VMs / externen Quellen / Google empfangen. Die Rate des Netzwerk-Traffics, der von Google-Diensten, Instanzen und externen Quellen empfangen wird, anhand einer Stichprobe von Paketen. Der Messwert wird so skaliert, dass die Summe mit dem gesamten empfangenen Netzwerk-Traffic übereinstimmt.

      • Gesamte Netzwerkpakete. Die Gesamtrate der gesendeten und empfangenen Pakete in Intervallen von einer Minute.

      • Durchschnittliche Paketgröße. Die durchschnittliche Größe von Paketen in Byte, die in Intervallen von einer Minute gesendet und empfangen werden.

      • Von Firewall abgelehnte eingehende Pakete. Die Rate der eingehenden Netzwerkpakete, die an die Instanz gesendet, aber nicht von der Instanz empfangen wurden, weil sie durch Firewallregeln abgelehnt wurden.

    • Auf der Seite Laufwerkleistung:

      • Durchschnittliche E/A-Größe: Die durchschnittliche Größe der E/A-Lese- und -Schreibvorgänge auf Laufwerken. Kleine zufällige E/A-Vorgänge (4 bis 16 KiB) werden in der Regel durch IOPS begrenzt, sequenzielle oder große E/A-Vorgänge (256 KiB bis 1 MiB) durch den Durchsatz begrenzt.

      • Durchschnittliche Warteschlangenlänge: Die Anzahl der in der Warteschlange befindlichen und ausgeführten Laufwerk-E/A-Vorgänge, die auch als Warteschlangentiefe bezeichnet werden, für die ersten fünf Geräte. Verwenden Sie eine hohe E/A-Warteschlangentiefe, um die Leistungsgrenzen Ihrer Speicher zu erreichen. Nichtflüchtiger Speicher und Google Cloud Hyperdisk sind Netzwerkspeicher und haben im Allgemeinen eine höhere Latenz im Vergleich zu physischen Laufwerken oder lokalen SSD-Laufwerken.

      • Durchschnittliche E/A-Latenz: Die durchschnittliche Latenz von E/A-Lese-/Schreibvorgängen, die über alle Vorgänge aller mit der Instanz verbundenen Laufwerke aggregiert wurden, gemessen vom Ops-Agent. Dieser Wert umfasst die Verarbeitungslatenz des Betriebssystems und des Dateisystems und ist von der Warteschlangenlänge und der E/A-Größe abhängig.

Informationen zu Leistungsmesswerten

Die Instanzleistung wird von der Hardware, auf der die Instanz ausgeführt wird, der auf der Instanz ausgeführten Arbeitslast und dem Maschinentyp der Instanz beeinflusst. Wenn die Hardware die Arbeitslast oder den Netzwerk-Traffic Ihrer Instanz nicht unterstützt, kann dies die Leistung Ihrer Instanz beeinträchtigen.

CPU- und Arbeitsspeicherleistung

Hardwaredetails

Die CPU- und Arbeitsspeicherleistung wird von folgenden Hardwareeinschränkungen beeinflusst:

  • Jede virtuelle CPU (vCPU) wird als einzelner Hardware-Multi-Thread auf einem CPU-Prozessor implementiert.
  • CPU-Prozessoren von Intel Xeon unterstützen mehrere Anwendungsthreads auf einem einzigen Prozessorkern.
  • VMs, die C2-Maschinentypen verwenden, haben eine feste Zuordnung von virtuellen zu physischen Kernen und stellen dem Gastbetriebssystem die NUMA-Zellarchitektur bereit.
  • Die meisten VMs erhalten Turbofrequenz für alle Kerne, die auf CPU-Plattformen aufgeführt ist, auch wenn nur die Basisfrequenz für die Gastumgebung angekündigt wird.
  • Maschinentypen mit gemeinsam genutztem Kern verwenden Kontextwechsel, um einen physischen Kern unter vCPUs für Multitasking freizugeben. Sie bieten auch Burst-Funktionen, während denen die CPU-Auslastung für eine VM über 100 % liegen kann. Weitere Informationen finden Sie unter Maschinentypen mit gemeinsam genutztem Kern.

So verstehen Sie die CPU- und Speicherleistung einer Instanz: Leistungsmesswerte ansehen für CPU-Auslastung und Speicherauslastung. Darüber hinaus können Sie Prozessmesswerte verwenden, um ausgeführte Prozesse zu sehen, Anomalien im Ressourcenverbrauch einem bestimmten Prozess zuzuordnen oder die teuersten Ressourcennutzer Ihrer Instanz zu identifizieren.

Eine dauerhaft hohe CPU- oder Arbeitsspeicherauslastung bedeutet, dass die Größe einer VM vertikal skaliert werden muss. Wenn die VM konsistent mehr als 90 % ihrer CPU oder ihres Arbeitsspeichers verwendet, ändern Sie den Maschinentyp der VM in einen Maschinentyp mit mehr vCPUs oder Arbeitsspeicher.

Netzwerkleistung

Hardwaredetails

Die Netzwerkleistung wird durch die folgenden Hardwarebeschränkungen beeinflusst:

  • Für jeden Maschinentyp gilt eine bestimmte Obergrenze für die Bandbreite von ausgehendem Traffic. Die maximale Bandbreite für den Maschinentyp Ihrer Instanz finden Sie auf der Seite, die der Maschinenfamilie Ihrer Instanz entspricht.
  • Das Hinzufügen zusätzlicher Netzwerkschnittstellen oder zusätzlicher IP-Adressen pro Netzwerkschnittstelle zu einer VM erhöht nicht die Netzwerkbandbreite der VM für eingehenden oder ausgehenden Traffic. Sie können jedoch einige Maschinentypen für eine höhere Bandbreite konfigurieren. Weitere Informationen finden Sie unter VM mit höherer Bandbreite konfigurieren.

Um die Netzwerkleistung einer Instanz zu verstehen, sehen Sie sich die Leistungsmesswerte für Folgendes an: Gesamte Netzwerkpakete, Durchschnittliche Paketgröße, Neue Verbindungen zu VMs/externen Quellen/Google, An VMs/externe Ziele/Google gesendet, Von VMs/externen Quellen/Google empfangen und Von Firewall abgelehnte eingehende Pakete.

Prüfen Sie, ob Gesamte Netzwerkpakete, Durchschnittliche Paketgröße und Neue Verbindungen zu VMs/externen Quellen/Google für Ihre Arbeitslast typisch sind. Beispielsweise kann es bei einem Webserver viele Verbindungen und kleine Pakete geben, während eine Datenbank wenige Verbindungen und große Pakete haben kann.

Ein dauerhaft hoher Netzwerk-Traffic kann darauf hinweisen, dass der Maschinentyp der VM geändert werden muss, und zwar in einen Maschinentyp mit einem höheren Bandbreitenlimit für ausgehenden Traffic.

Wenn Sie eine große Anzahl eingehender Pakete feststellen, die von Firewalls abgelehnt werden, rufen Sie die Network Intelligence-Seite Firewall Insights in der Google Cloud Console auf, um mehr über die Ursprünge abgelehnter Pakete zu erfahren.

Zur Seite "Firewall Insights"

Wenn Sie der Meinung sind, dass Ihr eigener Traffic fälschlicherweise von Firewalls abgelehnt wird, führen Sie Konnektivitätstests aus.

Wenn Ihre Instanz eine große Menge an Traffic von Instanzen in verschiedenen Zonen oder Regionen sendet und empfängt, sollten Sie eventuell Ihre Arbeitslast so ändern, dass mehr Daten innerhalb einer Zone oder Region gespeichert werden, um die Latenz zu erhöhen und die Kosten zu senken. Weitere Informationen finden Sie unter Preise für die VM-VM-Datenübertragung in Google Cloud. Wenn Ihre Instanz eine große Menge an Traffic an andere Instanzen innerhalb derselben Zone sendet, sollten Sie eine Richtlinie für kompakte Platzierung in Betracht ziehen, um eine niedrige Netzwerklatenz zu erzielen.

Bare-Metal-Instanzen

Im Gegensatz zu VM-Instanzen sind in einer Bare-Metal-Instanz die C6- und C1E-Ruhestatus nicht deaktiviert. Dies kann dazu führen, dass inaktive Kerne in den Ruhemodus wechseln und die Netzwerkleistung von Bare-Metal-Instanzen sinkt. Diese Ruhemodusstatus können im Betriebssystem deaktiviert werden, wenn Sie eine volle Netzwerkbandbreite benötigen.

  • Mit dem folgenden Skript können Sie die Ruhemodusstatus einer C3-Bare-Metal-Instanz deaktivieren, ohne die Instanz neu starten zu müssen:

    for cpu in {0..191}; do
    echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state3/disable
    echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state2/disable
    done
    
  • Alternativ können Sie die GRUB-Konfigurationsdatei aktualisieren, damit die Änderungen nach einem Neustart der Instanz erhalten bleiben.

    # add intel_idle.max_cstate=1 processor.max_cstate=1 to GRUB_CMDLINE_LINUX
    sudo vim /etc/default/grub
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    sudo reboot
    
  • Prüfen Sie nach dem Neustart, ob die Ruhemodusstatus C6 und C1E deaktiviert sind:

    ls /sys/devices/system/cpu/cpu0/cpuidle/
    state0  state1
    
    cat /sys/devices/system/cpu/cpu0/cpuidle/state*/name
    POLL
    C1
    

Die Input-Output-Speicherverwaltungseinheit (IOMMU) ist ein CPU-Feature, das die Adressvirtualisierung für PCI-Geräte bietet. IOMMU kann sich negativ auf die Netzwerkleistung auswirken, wenn es viele I/O translation lookaside buffer-Fehler (IOTLB) gibt.

  • Wenn kleine Seiten verwendet werden, steigt die Wahrscheinlichkeit von Fehlern.
  • Für eine optimale Leistung wird empfohlen, große Seiten (2 MB bis 1 GB) zu verwenden.

Speicherleistung

Hardwaredetails

Der Speicherplatz ist von folgenden Hardwarebeschränkungen betroffen:

  • Die Gesamtgröße aller nichtflüchtigen Speicher sowie die Anzahl der vCPUs bestimmen die Gesamtleistung des Speichers. Wenn verschiedene Arten von nichtflüchtigem Speicher an eine VM angehängt sind, gilt das Leistungslimit für nichtflüchtigen SSD-Speicher für alle Laufwerke auf der VM. Weitere Informationen finden Sie unter Blockspeicherleistung.
  • Wenn Persistent Disk und Hyperdisk mit ausgehendem Datenübertragungstraffic konkurrieren, werden 60 % der maximalen ausgehenden Netzwerkbandbreite für Persistent Disk und Hyperdisk und die verbleibenden 40 % für ausgehende Netzwerkdatenübertragung verwendet. Weitere Informationen finden Sie unter Andere Faktoren, die sich auf die Leistung auswirken.
  • Die Leistung der E/A-Größe und Warteschlangentiefe hängt von Arbeitslasten ab. Einige Arbeitslasten sind möglicherweise nicht groß genug, um die vollen Leistungsgrenzen für die E/A-Größe und die Warteschlangentiefe zu nutzen.
  • Der Maschinentyp einer VM wirkt sich auf die Speicherleistung aus. Weitere Informationen finden Sie unter Maschinentyp und vCPU-Anzahl.

Informationen zur Speicherleistung einer VM finden Sie unter Leistungsmesswerte ansehen für Durchsatz, Vorgänge (IOPS) und E/A-Größe, E/A-Latenz und Warteschlangenlänge.

Der Laufwerkdurchsatz und die IOPS geben an, ob die VM-Arbeitslast wie erwartet funktioniert. Wenn der Durchsatz oder die IOPS niedriger als der in der Tabelle mit den Speichertypen angegebene erwartete Maximalwert sind, können Probleme mit der E/A-Größe, der Warteschlangenlänge oder der E/A-Latenz auftreten.

Die E/A-Größe beträgt für Arbeitslasten, die hohe IOPS und eine geringe Latenz erfordern, zwischen 4 und 16 KiB und für Arbeitslasten mit sequenziellen oder großen Schreibgrößen zwischen 256 KiB und 1 MiB. Eine E/A-Größe außerhalb dieser Bereiche weist auf Leistungsprobleme des Laufwerks hin.

Die Warteschlangenlänge, auch Warteschlangentiefe genannt, ist ein Faktor für Durchsatz und IOPS. Wenn ein Laufwerk eine gute Leistung erzielt, sollte seine Warteschlangenlänge ungefähr so lang sein wie die empfohlene Warteschlangenlänge, um einen bestimmten Durchsatz oder einen bestimmten IOPS-Wert zu erreichen, der im Diagramm Empfohlene E/A-Warteschlangentiefe aufgeführt ist.

Die E/A-Latenz hängt von der Warteschlangenlänge und der E/A-Größe ab. Wenn die Warteschlangenlänge oder die E/A-Größe für ein Laufwerk hoch ist, ist auch die Latenz hoch.

Wenn Messwerte zur Speicherleistung auf Probleme mit der Laufwerksleistung hindeuten, führen Sie einen oder mehrere der folgenden Schritte aus: