Dieses Dokument im Google Cloud-Architektur-Framework enthält Empfehlungen zur Optimierung der Leistung Ihrer Compute Engine-, Google Kubernetes Engine- und serverlosen Ressourcen.
Compute Engine
Dieser Abschnitt enthält Anleitungen zur Leistungsoptimierung Ihrer Compute Engine-Ressourcen.
Ressourcen automatisch skalieren
Mit verwalteten Instanzgruppen (Managed Instance Groups, MIGs) können Sie zustandslose Anwendungen effizient skalieren, die auf Compute Engine-VMs bereitgestellt werden. Mit Autoscaling können Ihre Anwendungen weiterhin eine vorhersagbare Leistung liefern, wenn die Last zunimmt. In einer MIG wird eine Gruppe von Compute Engine-VMs basierend auf einer von Ihnen definierten Vorlage gestartet. In der Vorlage konfigurieren Sie eine Autoscaling-Richtlinie, die ein oder mehrere Signale angibt, mit denen das Autoscaling die Gruppe skaliert. Die Autoscaling-Signale können zeitplanbasiert wie Startzeit oder Dauer oder basierend auf Zielmesswerten wie der durchschnittlichen CPU-Auslastung sein. Weitere Informationen finden Sie unter Autoscaling von Instanzgruppen.
SMT deaktivieren
Jede virtuelle CPU (vCPU), die Sie einer Compute Engine-VM zuweisen, wird als einzelner Hardware-Multithread implementiert. Standardmäßig teilen sich zwei vCPUs einen physischen CPU-Kern. Diese Architektur wird als gleichzeitiges Multi-Threading (SMT) bezeichnet.
Bei Arbeitslasten, die sehr parallel sind oder Gleitkommaberechnungen ausführen (z. B. Transcodierung, Monte-Carlo-Simulationen, genetische Sequenzanalyse und Finanzrisikomodellierung), kann die Leistung durch Deaktivieren von SMT verbessert werden. Weitere Informationen finden Sie unter Anzahl der Threads pro Kern festlegen.
GPUs verwenden
Für Arbeitslasten wie maschinelles Lernen und Visualisierung können Sie Ihren VMs GPUs (Graphical Processing Units) hinzufügen. NVIDIA-GPUs werden in Compute Engine im Passthrough-Modus bereitgestellt, sodass Ihre VMs die GPUs und den zugehörigen Arbeitsspeicher direkt steuern können. Für grafikintensive Arbeitslasten wie 3D-Visualisierung können Sie virtuelle NVIDIA RTX-Workstations verwenden. Nach dem Bereitstellen der Arbeitslasten müssen Sie die GPU-Nutzung überwachen und die Optionen zur Optimierung der GPU-Leistung prüfen.
Computing-optimierte Maschinentypen verwenden
Arbeitslasten wie Gaming, Medientranscodierung und Hochleistungs-Computing (HPC) erfordern eine konsistent hohe Leistung pro CPU-Kern. Google empfiehlt für die VMs, auf denen solche Arbeitslasten ausgeführt werden, computing-optimierte Maschinentypen zu verwenden. Computing-optimierte VMs basieren auf einer Architektur, die für eine optimale und zuverlässige Leistung Funktionen wie uneinheitlichen Speicherzugriff (NUMA) verwendet.
Für eng gekoppelte HPC-Arbeitslasten gelten spezielle Anforderungen, um die Spitzeneffizienz zu erreichen. Weitere Informationen erhalten Sie in dieser Dokumentation:
- Parallele Dateisysteme für HPC-Arbeitslasten
- Architektur: Lustre-Dateisystem in Google Cloud mit DDN EXAScaler
Geeigneten Speicher auswählen
Google Cloud bietet eine Vielzahl von Speicheroptionen für Compute Engine-VMs: nichtflüchtige Speicher, lokale SSD-Laufwerke (Solid-State Drive), Filestore und Cloud Storage. Designempfehlungen und Best Practices zur Optimierung der Leistung jeder dieser Speicheroptionen finden Sie unter Speicherleistung optimieren.
Google Kubernetes Engine
Dieser Abschnitt enthält Anleitungen zum Optimieren der Leistung Ihrer Google Kubernetes Engine-Ressourcen (GKE).
Ressourcen automatisch skalieren
Mit dem Feature Cluster Autoscaler können Sie die Größe der Knotenpools in einem GKE-Cluster automatisch an die aktuelle Auslastung anpassen. Mit Autoscaling können Ihre Anwendungen weiterhin eine vorhersagbare Leistung liefern, wenn die Last zunimmt. Cluster Autoscaler passt die Größe von Knotenpools automatisch an die Ressourcenanforderungen (anstelle der tatsächlichen Ressourcennutzung) der Pods an, die auf den Knoten ausgeführt werden. Wenn Sie Autoscaling verwenden, können Sie Kompromisse zwischen Leistung und Kosten eingehen. Lesen Sie die Best Practices zur effizienten Konfiguration von Cluster-Autoscaling.
C2D-VMs verwenden
Sie können die Leistung rechenintensiver Containerarbeitslasten mithilfe von C2D-Maschinentypen verbessern. Sie können C2D-Knoten zu Ihren GKE-Clustern hinzufügen, wenn Sie einen C2D-Maschinentyp in Ihren Knotenpools auswählen.
SMT deaktivieren
Das gleichzeitige Multi-Threading (SMT) kann den Anwendungsdurchsatz für allgemeine Computing-Aufgaben und für Arbeitslasten, die hohe E/A-Vorgänge benötigen, erheblich erhöhen. Bei Arbeitslasten, bei denen beide virtuellen Kerne rechengebunden sind, kann SMT zu einer inkonsistenten Leistung führen. Wenn Sie eine bessere und vorhersagbare Leistung erzielen möchten, können Sie die SMT für Ihre GKE-Knoten deaktivieren. Dazu setzen Sie die Anzahl der vCPUs pro Kern auf 1.
GPUs verwenden
Bei rechenintensiven Arbeitslasten wie Bilderkennung und Videotranscodierung können Sie die Leistung beschleunigen. Erstellen Sie dazu Knotenpools, die GPUs verwenden. Weitere Informationen finden Sie unter GPUs ausführen.
Containernatives Load-Balancing verwenden
Containernatives Load-Balancing ermöglicht es Load-Balancern, Traffic direkt und gleichmäßig auf Pods zu verteilen. Dieser Ansatz bietet eine bessere Netzwerkleistung und eine bessere Sichtbarkeit der Netzwerklatenz zwischen dem Load-Balancer und den Pods. Aufgrund dieser Vorteile ist das containernative Load-Balancing die empfohlene Lösung für das Load-Balancing über Ingress.
Kompakte Platzierungsrichtlinie definieren
Für eng gekoppelte Batcharbeitslasten ist eine niedrige Netzwerklatenz zwischen den Knoten im GKE-Knotenpool erforderlich. Sie können solche Arbeitslasten in Einzelzonen-Knotenpools bereitstellen und dafür sorgen, dass die Knoten physisch nahe beieinander liegen. Definieren Sie dazu eine kompakte Platzierungsrichtlinie. Weitere Informationen finden Sie unter Kompakte Platzierung für GKE-Knoten definieren.
Serverlose Computing-Dienste
Dieser Abschnitt enthält Anleitungen zum Optimieren der Leistung Ihrer serverlosen Computing-Dienste in Google Cloud: Cloud Run und Cloud Functions. Diese Dienste bieten Autoscaling-Funktionen, bei denen die zugrunde liegende Infrastruktur automatisch skaliert wird. Mit diesen serverlosen Diensten können Sie den Aufwand für die Skalierung Ihrer Mikrodienste und Funktionen reduzieren und sich auf die Optimierung der Leistung auf Anwendungsebene konzentrieren.
Weitere Informationen erhalten Sie in dieser Dokumentation:
- Leistung in Cloud Run-Diensten optimieren
- Java-Anwendungen für Cloud Run optimieren
- Leistung in Cloud Functions optimieren
Nächste Schritte
Hier finden Sie Best Practices zur Optimierung der Leistung Ihrer Speicher-, Netzwerk-, Datenbank- und Analyseressourcen:
- Speicherleistung optimieren.
- Netzwerkleistung optimieren.
- Leistung von Datenbanken optimieren.
- Analyseleistung optimieren.