CPU-Leistung mit der PMU analysieren

Auf dieser Seite erfahren Sie, wie Sie die CPU-Leistung Ihrer Google Kubernetes Engine-Clusterknoten (GKE) mithilfe von PMU-Ereignissen (Performance Monitoring Unit) analysieren.

Diese Seite richtet sich an Clusteradministratoren mit leistungssensiblen Arbeitslasten, die die CPU-Ausführung ihrer Arbeitslasten auf ihren GKE-Knoten während der Entwicklung, des Debuggings, des Benchmarking und der kontinuierlichen Überwachung untersuchen möchten.

Hinweis

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diesen Task verwenden möchten, installieren und dann initialisieren Sie die gcloud CLI. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit dem gcloud components update Befehl ab. Ältere gcloud CLI-Versionen unterstützen möglicherweise nicht die Ausführung der Befehle in diesem Dokument.

Anforderungen und Einschränkungen

Beachten Sie beim Aktivieren von PMU-Ereignissen die folgenden Anforderungen und Einschränkungen:

  • Ihr Cluster muss sich im Standard-Modus befinden.
  • Wenn die automatische Knotenbereitstellung für Ihren Cluster aktiviert ist, können PMU-Ereignisse für Knotenpools, die durch die automatische Bereitstellung erstellt wurden, nicht aktiviert werden. Wenn Sie die automatische Knotenbereitstellung nach dem Aktivieren von PMU-Ereignissen aktivieren, hat dies keine Auswirkungen auf vorhandene Knotenpools.
  • Auf Clusterknotenpools muss eine Maschinenserie ausgeführt werden, die PMU unterstützt. Weitere Informationen zu den unterstützten Maschinentypen finden Sie unter Unterstützte Maschinenserien und CPU-Plattformen.

GKE-Cluster erstellen

Erstellen Sie einen Cluster, für den PMU-Ereignisse für den Standardknotenpool aktiviert sind:

gcloud container clusters create CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --performance-monitoring-unit=PMU_LEVEL \
    --machine-type=MACHINE_TYPE

Ersetzen Sie Folgendes:

  • CLUSTER_NAME ist der Name des neuen Clusters.
  • COMPUTE_LOCATION: der Compute Engine-Standort für den neuen Cluster.
  • PMU_LEVEL ist der Typ der zu erfassenden PMU-Ereignisse. Weitere Informationen finden Sie in der Compute Engine-Dokumentation unter Funktionsweise der PMU. Unterstützte Werte:
    • architectural: Aktiviert architektonische PMU-Ereignisse im Zusammenhang mit Ereignissen, die nicht den Cache der letzten Ebene (Last-Level Cache, LLC) betreffen.
    • standard: Enthält architektonische Ereignisse und aktiviert PMU-Kernereignisse, einschließlich L2-Cache-Ereignisse.
    • enhanced: Enthält Standardereignisse und aktiviert alle lokalen Ereignisse außerhalb des CPU-Kerns und LLC-PMU-Ereignisse. Diese Option ist nur für VMs mit einer bestimmten Anzahl von vCPUs verfügbar. Weitere Informationen finden Sie in der Compute Engine-Dokumentation unter Einschränkungen.
  • MACHINE_TYPEist der Compute Engine-Maschinentyp für Ihre Knoten. Eine Liste der unterstützten Maschinentypen finden Sie in der Compute Engine-Dokumentation unter Unterstützte Maschinenserien und CPU-Plattformen.

Sie können auch einen neuen Knotenpool für einen vorhandenen Cluster mit dem gcloud container node-pools create Befehl erstellen.

Mit dem Cluster verbinden

Konfigurieren Sie kubectl für die Kommunikation mit dem Cluster:

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=COMPUTE_LOCATION

Prüfen, ob die PMU aktiviert ist

Prüfen Sie anhand der Kernel-Meldungen, ob die PMU für Ihre Clusterknoten aktiviert ist.

  1. Rufen Sie eine Liste der Knoten im Cluster ab:

    kubectl get nodes
    

    Die Ausgabe sieht etwa so aus:

    NAME                                  STATUS   ROLES    AGE     VERSION
    gke-c1-default-pool-44be3e13-prr1     Ready    <none>   5d23h   v1.27.13-gke.1070000
    gke-c1-default-pool-7abc4a17-9dlg     Ready    <none>   2d21h   v1.27.13-gke.1070000
    gke-c1-default-pool-ed969ef6-4gzp     Ready    <none>   5d      v1.27.13-gke.1070000
    

    Notieren Sie den Namen eines der Knoten.

  2. Rufen Sie den Compute Engine-Standort des Knotens ab:

    gcloud compute instances list --filter=NODE_NAME
    

    Ersetzen Sie NODE_NAME durch den Namen eines Knotens aus dem vorherigen Schritt.

    Die Ausgabe sieht etwa so aus:

    NAME                               ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    gke-c1-default-pool-44be3e13-prr1  us-central1-c  c4-standard-4     true         10.128.0.67  34.170.44.164  RUNNING
    

    Notieren Sie den Namen der Compute Engine-ZONE. In diesem Beispiel ist es us-central1-c.

  3. Stellen Sie eine SSH-Verbindung zum Clusterknoten her:

    gcloud compute ssh NODE_NAME \
        --zone=COMPUTE_ZONE
    

    Ersetzen Sie COMPUTE_ZONE durch den Namen der Compute Engine-Zone aus dem vorherigen Schritt.

  4. Prüfen Sie die Kernel-Meldungen:

    sudo dmesg |grep -A10 -i "Performance"
    

    Die Ausgabe sieht etwa so aus:

    [    0.307634] Performance Events: generic architected perfmon, full-
    width counters, Intel PMU driver.
    # Several lines omitted
    

    Diese Ausgabe gibt an, dass der PMU-Treiber initialisiert wurde.

Nächste Schritte

  • Mindest-CPU-Plattform auswählen