CPU-Auslastungsmesswerte

Auf dieser Seite werden die CPU-Auslastungsmesswerte beschrieben, die Spanner bereitstellt. Sie können sich diese Messwerte in der Google Cloud Console und in der Cloud Monitoring Console ansehen.

CPU-Auslastung und Aufgabenpriorität

Spanner misst die CPU-Auslastung basierend auf der Quelle und der Priorität der Aufgabe.

  • Quelle: Eine Aufgabe kann entweder vom Nutzer oder vom System initiiert werden.

  • Priorität: Anhand der Priorität kann Spanner bestimmen, welche Aufgaben zuerst ausgeführt werden sollen. Die Priorität von Systemaufgaben ist vorgegeben und kann nicht konfiguriert werden. User-Aufgaben werden mit hoher Priorität ausgeführt, sofern nicht anders angegeben. Bei vielen Datenanfragen wie read und executeSql können Sie für die Anfrage eine niedrigere Priorität angeben. Dies kann beispielsweise nützlich sein, wenn Sie Batch-, Wartungs- oder Analyseabfragen ausführen, für die keine strikten Leistungs-SLOs gelten.

    Aufgaben mit höherer Priorität werden im Allgemeinen vor Aufgaben mit niedrigerer Priorität ausgeführt. Spanner ermöglicht es Aufgaben mit hoher Priorität, bis zu 100% der verfügbaren CPU-Ressourcen zu nutzen, selbst wenn es konkurrierende Aufgaben mit niedrigerer Priorität gibt. Während Systemaufgaben mit niedrigerer Priorität zwar kurzfristig verzögert werden können, müssen sie jedoch irgendwann ausgeführt werden. Daher müssen Sie die Instanz mit genügend Rechenkapazität bereitstellen, um alle Aufgaben zu bewältigen.

    Wenn keine Aufgaben mit hoher Priorität vorhanden sind, verwendet Spanner bis zu 100 % der verfügbaren CPU-Ressourcen, um Aufgaben mit niedrigerer Priorität schneller zu erledigen. Ausschläge im Hintergrund sind kein Anzeichen für ein Problem. Aufgaben mit niedrigerer Priorität können fast augenblicklich zu Aufgaben mit höherer Priorität führen, einschließlich Nutzeraufgaben.

Die folgende Tabelle enthält Beispiele für jede Aufgabe:

Nutzeraufgaben Systemaufgaben
Hohe Priorität Umfasst Datenanfragen wie read oder executeSql, bei denen entweder keine Priorität oder PRIORITY_HIGH angegeben ist. Umfasst Datenaufteilung.
Mittlere Priorität Dazu gehören:
  • Datenanfragen, bei denen PRIORITY_MEDIUM angegeben ist
  • Lese- und Schreibvorgänge, die von Dataflow-Jobs ausgegeben werden, einschließlich Import und Export.
Dazu gehören:
Niedrige Priorität Umfasst Datenanfragen, bei denen PRIORITY_LOW angegeben ist. Dazu gehören:
  • Index-Backfill
  • Backfill einer generierten Spalte

Verfügbare Messwerte

Spanner stellt die folgenden Messwerte für die CPU-Auslastung bereit:

  • Ausgeglichene CPU-Auslastung: Ein gleitender Durchschnitt der gesamten CPU-Auslastung als Prozentsatz der CPU-Ressourcen der Instanz für jede Datenbank. Jeder Datenpunkt ist ein Durchschnittswert für die letzten 24 Stunden. Verwenden Sie diesen Messwert, um Benachrichtigungen zu erstellen und die CPU-Auslastung über einen längeren Zeitraum zu analysieren, z. B. 24 Stunden. Sie können ein Diagramm für diesen Messwert in der Google Cloud Console oder in der Cloud Monitoring Console als gleitender Durchschnitt über 24 Stunden aufrufen.

  • CPU-Auslastung nach Priorität: Die CPU-Auslastung als Prozentsatz der CPU-Ressourcen der Instanz, gruppiert nach Priorität, vom Nutzer initiierten Aufgaben und vom System initiierten Aufgaben. Verwenden Sie diesen Messwert, um Benachrichtigungen zu erstellen und die CPU-Auslastung auf übergeordneter Ebene zu analysieren. Sie können ein Diagramm für diesen Messwert in der Google Cloud Console oder in der Cloud Monitoring Console aufrufen.

  • CPU-Auslastung nach Vorgangstyp: Die CPU-Auslastung als Prozentsatz der CPU-Ressourcen der Instanz, gruppiert nach vom Nutzer initiierten Vorgängen wie Lese-, Schreib- und Commits. Mit diesem Messwert können Sie eine detaillierte Aufschlüsselung der CPU-Nutzung erhalten und Fehler weiter beheben, wie unter Hohe CPU-Auslastung untersuchen erläutert. Ein Diagramm für diesen Messwert können Sie in der Cloud Monitoring Console erstellen.

    Sie können die Cloud Monitoring-Konsole auch verwenden, um Benachrichtigungen zur CPU-Auslastung zu erstellen, wie später beschrieben.

In der folgenden Tabelle finden Sie unsere Empfehlungen zur maximalen CPU-Auslastung für Instanzen mit einer einzelnen Region und mit mehreren Regionen. Diese Zahlen sorgen dafür, dass Ihre Instanz über genügend Rechenkapazität verfügt, damit der Traffic auch dann weitergeleitet werden kann, wenn eine gesamte Zone (bei Instanzen mit nur einer Region) oder eine gesamte Region (bei Instanzen mit mehreren Regionen) ausfällt.

Messwert Maximum für Instanzen mit einer Region Maximum pro Region für Instanzen mit mehreren Regionen
Hohe Priorität insgesamt 65 % 45 %
Über 24 Stunden geglättetes Aggregat 90 % 90 %

Damit Sie unter den empfohlenen Maximalwerten bleiben, erstellen Sie Benachrichtigungen in Cloud Monitoring, die die CPU-Auslastung mit hoher Priorität und die durchschnittliche CPU-Auslastung über 24 Stunden erfassen.

Die CPU-Auslastung kann sich auf die Anfragelatenzen auswirken. Eine Überlastung eines einzelnen Back-End-Servers führt zu höheren Anfragelatenzen. Die Anwendungen sollten Benchmarks und aktives Monitoring ausführen, um zu prüfen, ob Cloud Spanner ihre Leistungsanforderungen erfüllt.

Bei leistungsabhängigen Anwendungen müssen Sie die CPU-Auslastung möglicherweise mithilfe der im folgenden Abschnitt beschriebenen Techniken zusätzlich reduzieren.

CPU-Auslastung über 100%

In bestimmten Fällen kann die CPU-Auslastung einer Spanner-Instanz über 100 % liegen. Das bedeutet, dass die Instanz mehr CPU-Ressourcen verwendet als die für die Instanz konfigurierte Menge.

CPU-Ressourcen über 100% können verwendet werden, um bei CPU-Auslastungsspitzen eine bessere und besser vorhersehbare Leistung bereitzustellen, z. B. aufgrund eines plötzlichen Anstiegs des Anfragetraffics.

CPU-Kapazitäten über 100% werden NICHT garantiert und sollten nicht für normale Datenbankvorgänge genutzt werden.

Wenn eine Spanner-Instanz über einen längeren Zeitraum fast oder über 100% CPU-Auslastung ausgeführt wird, besteht das Risiko, dass die normale Betriebsleistung und -latenz beeinträchtigt werden. Zusätzliche CPU-Ressourcen sind kein sicherer Mechanismus für eine konsistente Leistung.

Diese zusätzliche CPU-Auslastung wird Kunden nicht in Rechnung gestellt.

CPU-Auslastung reduzieren

In diesem Abschnitt wird erläutert, wie Sie die CPU-Auslastung einer Instanz reduzieren können.

Im Allgemeinen empfehlen wir, als Ausgangspunkt die Rechenkapazität Ihrer Instanz zu erhöhen. Nachdem Sie die Rechenkapazität erhöht haben, können Sie die Ursachen einer hohen CPU-Auslastung untersuchen und beheben.

Rechenkapazität erhöhen

Wenn Sie die empfohlenen Maximalwerte für die CPU-Auslastung überschreiten, empfehlen wir dringend, die Rechenkapazität Ihrer Instanz zu erhöhen, damit sie weiterhin effizient arbeiten kann. Wenn Sie diesen Prozess automatisieren möchten, können Sie eine Anwendung erstellen, die die CPU-Auslastung überwacht und anschließend die Rechenkapazität mit der Methode UpdateInstance nach Bedarf erhöht oder verringert.

Berücksichtigen Sie die maximale CPU-Auslastung mit hoher Priorität sowie den über die 24 Stunden geglätteten Durchschnitt, um die benötigte Rechenkapazität zu ermitteln. Weisen Sie immer genügend Rechenkapazität zu, um die CPU-Auslastung unter den empfohlenen Höchstwerten zu halten. Wie bereits beschrieben, müssen Sie möglicherweise leistungsempfindlichen Anwendungen zusätzliche Rechenkapazität zuweisen, z. B. um Arbeitslastspitzen abzufangen.

Wenn Sie nicht genügend Rechenkapazität haben, verschiebt Spanner Aufgaben nach Prioritätsstufe. Systemaufgaben mit niedriger Priorität wie die Datenbankverdichtung und Validierung von Schemaänderungen können zugunsten von Nutzeraufgaben zurückgestellt werden. Diese Aufgaben sind jedoch für den Zustand Ihrer Instanz von entscheidender Bedeutung und Spanner kann sie nicht unbegrenzt aufschieben. Wenn Spanner seine Systemaufgaben mit niedriger Priorität aufgrund unzureichender Rechenressourcen nicht innerhalb eines bestimmten Zeitfensters – in der Größenordnung von mehreren Stunden pro Tag – ausführen kann, kann Spanner die Priorität der Systemaufgaben erhöhen. Diese Änderung wirkt sich auf die Leistung von Nutzeraufgaben aus.

Genauere Untersuchungen mit Tools zur Selbstprüfung

Wenn der Messwert CPU-Auslastung nach Vorgangstyp darauf hinweist, dass eine bestimmte Art von Vorgang zu einer hohen CPU-Auslastung beiträgt, können Sie die Spanner-Tools zur Selbstprüfung verwenden, um das Problem weiter zu beheben. Weitere Informationen finden Sie unter Hohe CPU-Auslastung untersuchen.

Nächste Schritte