Auf dieser Seite wird beschrieben, wie Sie die CPU-Leistung Ihrer GKE-Knoten (Google Kubernetes Engine) mithilfe von PMU-Ereignissen (Performance Monitoring Unit) analysieren.
Diese Seite richtet sich an Clusteradministratoren, die leistungsintensive Arbeitslasten haben und die CPU-Ausführung ihrer Arbeitslasten auf ihren GKE-Knoten während der Entwicklung, des Debuggens, des Benchmarking und der kontinuierlichen Überwachung untersuchen möchten.
Hinweise
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 diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
Anforderungen und Einschränkungen
Beachten Sie beim Aktivieren von PMU-Ereignissen die folgenden Anforderungen und Einschränkungen:
- Der Cluster muss im Standardmodus sein.
- Wenn in Ihrem Cluster die automatische Knotenbereitstellung aktiviert ist, können für Knotenpools, die durch die automatische Bereitstellung erstellt wurden, keine PMU-Ereignisse aktiviert werden. Wenn Sie die automatische Knotenbereitstellung nach der Aktivierung von PMU-Ereignissen aktivieren, sind vorhandene Knotenpools davon nicht betroffen.
- Auf den Knotenpools des Clusters muss der Maschinentyp C4 oder C4A ausgeführt werden.
GKE-Cluster erstellen
Erstellen Sie einen Cluster mit aktivierten PMU-Ereignissen für den Standardknotenpool:
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
: 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, die sich auf Ereignisse ohne Cache der letzten Ebene (Last-Level Cache, LLC) beziehen.standard
: Enthält Architekturereignisse und ermöglicht die Verwendung von PMU-Kernereignissen, einschließlich L2-Cache-Ereignissen.enhanced
: Enthält Standardereignisse und ermöglicht alle lokalen Ereignisse außerhalb der CPU-Core- 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_TYPE
: Der Compute Engine-Maschinentyp für Ihre Knoten. Eine Liste der unterstützten Maschinentypen finden Sie in der Compute Engine-Dokumentation unter Einschränkungen.
Sie können auch einen neuen Knotenpool für einen vorhandenen Cluster mit dem Befehl gcloud container node-pools create
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 PMU für Ihre Clusterknoten aktiviert ist.
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 sich den Namen eines der Knoten.
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 dasus-central1-c
.Stellen Sie über SSH eine 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.Kernel-Meldungen prüfen:
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.