Hotspots in Ihrer Datenbank finden

In diesem Dokument wird beschrieben, wie Sie das Hotspot-Statistik-Dashboard verwenden, um Hotspots in Ihrer Spanner-Datenbank zu erkennen.

Hotspot-Statistiken – Übersicht

Hotspots verursachen Latenz in Ihrer Spanner-Datenbank. Mit dem Dashboard für Hotspot-Statistiken können Sie die von Hotspots betroffenen Splits erkennen. So können Sie feststellen, ob Hotspots Latenz verursachen, und das Problem beheben:

  1. Öffnen Sie das Dashboard.
  2. Prüfen Sie, ob Hotspots Ihr Eingreifen erfordern.
  3. Problematische Hot Splits identifizieren.

Hotspot-Statistiken sind in Konfigurationen für eine einzelne Region, mehrere Regionen und Dual-Regionen verfügbar.

Preise

Für Hotspot-Statistiken fallen keine zusätzlichen Kosten an.

Datenaufbewahrung

Die Richtlinien zur Datenaufbewahrung für die Diagramme mit Hotspot-Statistiken und die Tabelle mit den Top-N-Splits basieren auf den zugrunde liegenden SPANNER_SYS.SPLIT_STATS_TOP_*-Tabellen. Spezifische Aufbewahrungsrichtlinien finden Sie unter Datenaufbewahrung für Hot-Split-Statistiken.

Erforderliche Rollen

Je nachdem, ob Sie ein IAM-Nutzer oder ein Nutzer mit detaillierter Zugriffssteuerung sind, benötigen Sie möglicherweise unterschiedliche IAM-Rollen und -Berechtigungen.

IAM-Nutzer

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Instanz zuzuweisen, damit Sie die nötigen Berechtigungen zum Aufrufen der Seite Hotspot-Statistiken haben:

Die folgenden Berechtigungen in der Rolle Cloud Spanner-Datenbankleser (roles/spanner.databaseReader) sind erforderlich, um die Seite Hotspot-Statistiken aufzurufen:

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.select
  • spanner.sessions.create

Nutzer mit detaillierter Zugriffssteuerung

Wenn Sie die detaillierte Zugriffssteuerung verwenden, müssen Sie Folgendes tun:

  • Sie haben die Rolle Cloud Spanner-Betrachter (roles/spanner.viewer).
  • Sie haben detaillierte Zugriffssteuerungsberechtigungen und Ihnen wurde die Systemrolle spanner_sys_reader oder eine ihrer Mitgliedsrollen zugewiesen.
  • Wählen Sie auf der Seite Übersicht der Datenbank die Rolle spanner_sys_reader oder eine Mitgliedsrolle als aktuelle Systemrolle aus.

Weitere Informationen finden Sie unter Detaillierte Zugriffssteuerung – Übersicht und Systemrollen für die detaillierte Zugriffssteuerung.

Dashboard „Hotspot-Statistiken“ öffnen

Im Dashboard Hotspot-Statistiken wird der Prozentsatz der CPU-Nutzung des Spitzen-Splits angezeigt. Dieser Messwert ist ein abstrakter Prozentsatz zwischen 0 und 100, der den Anteil der CPU-Nutzung durch Zugriffe auf die Zeilen innerhalb eines Splits angibt.

So rufen Sie das Dashboard Hotspot-Statistiken für eine Datenbank auf:

  1. Öffnen Sie in der Google Cloud Console die Seite Spanner.

    Spanner aufrufen

  2. Wählen Sie eine Instanz aus der Liste aus.

  3. Klicken Sie im Navigationsmenü auf den Tab Hotspot-Statistiken.

  4. Wählen Sie im Feld Datenbank eine Datenbank aus der Liste aus. Das Dashboard zeigt den CPU-Nutzungswert des Spitzen-Splits für die Datenbank an.

Das Dashboard enthält die folgenden Elemente:

  • CPU-Nutzungswert des Spitzen-Splits: Ein höherer CPU-Nutzungswert (z. B. nahe 100) weist darauf hin, dass der Split stark genutzt wird und sehr wahrscheinlich ein Heißlaufen auf dem Server verursacht, verglichen mit niedrigeren Werten.
  • Datenbankfeld: Filtert die Informationen zu Hot Splits für eine bestimmte Datenbank oder für alle Datenbanken.
  • Zeitraumfilter: Filtert die CPU-Auslastung der Spitzen-Splits in Schritten von 1 Minute bis zu insgesamt 6 Stunden.
  • Tabelle der n Splits mit den höchsten CPU-Nutzungswerten: Zeigt die Liste der Splits mit den höchsten CPU-Nutzungswerten an, sortiert nach CPU-Nutzungswerten der Splits.

Das Dashboard „Statistiken zum Heißlaufen“ in Spanner mit einem Diagramm der maximalen CPU-Nutzung von Splits, einer Datenbankauswahl, einem Zeitraumfilter und einer Tabelle der n Splits mit der höchsten Nutzung.

Daten in der Tabelle „Top-N-Splits“ verstehen: Die Tabelle Top-N-Splits enthält Daten aus den zugrunde liegenden SPANNER_SYS.SPLIT_STATS_TOP_*-Tabellen basierend auf dem ausgewählten Zeitraum. Weitere Informationen finden Sie unter Datenaufbewahrung für Hot-Split-Statistiken.

Zeilen aus 10MINUTE- oder HOUR-Tabellen interpretieren: Zeilen aus SPANNER_SYS.SPLIT_STATS_TOP_10MINUTE oder SPANNER_SYS.SPLIT_STATS_TOP_HOUR stellen aggregierte Daten für die jeweiligen Intervalle dar. Wie unter Tabellenereignisaggregation beschrieben, ist der CPU_USAGE_SCORE in diesen Zeilen der maximale Wert, der in einem zugrunde liegenden 1-minütigen Unterintervall beobachtet wurde, und UNSPLITTABLE_REASONS ist eine Vereinigung von Gründen.

Feststellen, ob bei Hotspots Maßnahmen erforderlich sind

Wenn Sie in der Grafik einen Anstieg oder eine Erhöhung sehen, die der Gesamtlatenz und einem dauerhaft hohen CPU-Nutzungswert des Spitzen-Splits entspricht, müssen Sie möglicherweise weitere Untersuchungen durchführen.

Sehen Sie sich die Grafik an, um diese Fragen zu untersuchen:

  • Bei welcher Datenbank kommt es zu einer Verschlechterung der Latenz? Wählen Sie in der Liste Datenbanken verschiedene Datenbanken aus, um die Datenbanken mit der höchsten Latenz zu finden. Wenn Sie herausfinden möchten, welche Datenbank die höchste Last hat, können Sie sich auch das Latenzdiagramm für Datenbanken in der Google Cloud Console ansehen.

    Ein Liniendiagramm mit dem Titel „CPU-Nutzungswert des Spitzen-Splits“, das den CPU-Nutzungswert des Spitzen-Splits im Zeitverlauf zeigt. Die Grafik zeigt einen Ausschlag, der auf einen Hotspot und potenzielle Latenzprobleme hinweisen kann.

  • Ist die Latenz hoch? Ist die Latenz im Vergleich zur erwarteten Latenz für die Arbeitslast hoch? Ist eine Spitze oder ein Anstieg im Zeitverlauf zu sehen? Wenn keine hohe Latenz angezeigt wird, sind Hotspots kein Problem.

  • Liegt der CPU-Nutzungswert des Spitzen-Splits bei 100 %? Ist eine Spitze oder ein Anstieg im Zeitverlauf zu sehen? Wenn Sie nicht mindestens 10 Minuten lang eine dauerhafte CPU-Auslastung von 100 % für die Spitzenaufteilung sehen, sind Hotspots möglicherweise kein Problem. Wenn der Prozentsatz der CPU-Auslastung für die Spitzenaufteilung länger als 10 Minuten hoch ist, sollten Sie prüfen, ob die Datenbank höhere Latenzwerte als erwartet hat.

Wenn Sie länger als 10 Minuten eine CPU-Auslastung von 100 % für den Spitzen-Split sehen, müssen Sie möglicherweise eingreifen. Als Nächstes können Sie mit der Fehlerbehebung fortfahren, indem Sie die Hot-Splits in Ihrer Datenbank identifizieren.

Problematische Hot-Splits identifizieren

Informationen zum Identifizieren eines potenziell problematischen Splits mit Hotspots finden Sie im Abschnitt TopN-Splits in der Google Cloud Console, wie im Folgenden gezeigt.

Eine Tabelle der „TopN-Splits“ in Spanner, in der potenziell problematische Splits aufgeführt sind. Die Tabelle enthält Spalten für „Intervallende“, „Split-Start“, „Split-Limit“, „CPU-Nutzungswert des Splits“, „Betroffene Tabellen“ und „Gründe für Nichtaufteilbarkeit“.

Die Tabelle Top-N-Splits bietet eine Übersicht über die Splits, die im ausgewählten Zeitfenster möglicherweise stark genutzt werden, sortiert von der neuesten bis zur frühesten. Die Anzahl der TopN-Aufteilungen ist auf 100 beschränkt.

Für die Diagramme ruft Spanner Daten aus der Statistiktabelle für die Top-N-Splits mit einer Granularität von einer Minute ab. Der Wert für jeden Datenpunkt in den Diagrammen stellt den Durchschnittswert über ein Intervall von einer Minute dar.

Die Tabelle enthält die folgenden Attribute:

  • Intervallende: Datum und Uhrzeit, zu der die hohe CPU-Auslastung endet.
  • Split-Start: Der Startschlüssel des Zeilenbereichs im Split. Wenn der Split-Start <begin> ist, gibt er den Beginn des Schlüsselbereichs der Datenbank an.
  • Split-Limit: Der Limitschlüssel des Zeilenbereichs im Split. Wenn der Limitschlüssel <end> ist, gibt er das Ende des Schlüsselbereichs der Datenbank an.
  • CPU-Nutzungswert des Splits: Ein abstrakter Wert zwischen 0 und 100, der den Anteil der CPU-Nutzung durch Zugriffe auf die Zeilen innerhalb des Splits auf einem einzelnen Server angibt. Anhand des CPU-Nutzungswerts können Sie ermitteln, ob ein Heißlaufen zu verzeichnen ist.
  • Betroffene Tabellen: Die Tabellen, deren Zeilen möglicherweise im Split enthalten sind.
  • Gründe für die Unteilbarkeit: Eine Reihe von Gründen, warum Spanner einen Hot Split nicht weiter aufteilen kann. Wenn hier Werte vorhanden sind, bedeutet dies, dass die lastbasierte Aufteilung den Hotspot aus den aufgeführten Gründen nicht entschärfen kann. Weitere Informationen finden Sie unter UNSPLITTABLE_REASONS-Typen.

Gründe für Nichtaufteilbarkeit analysieren

In der Tabelle TopN-Splits können Sie sich genauer ansehen, welche bestimmten Splits zu bestimmten Zeiten von diesen Gründen betroffen sind, wie in der Spalte Gründe für nicht aufteilbare Splits gezeigt.

Beispielhafter Diagnoseablauf

Hier ist ein typischer Workflow zum Debuggen von Hotspots mit dem Dashboard:

  1. Leistungsproblem beobachten: Sie bemerken eine erhöhte Latenz oder Fehler in Ihrer Anwendung.
  2. Hotspot-Statistiken öffnen: Rufen Sie in der Google Cloud Console das Dashboard „Hotspot-Statistiken“ für die entsprechende Spanner-Datenbank auf. Wählen Sie den Zeitraum aus, in dem das Problem aufgetreten ist.
  3. Diagramm prüfen:
    • Prüfen Sie das Diagramm CPU-Nutzungswert des Spitzen-Splits auf anhaltend hohe Werte, z. B. > 50 %, insbesondere Werte, die sich 100 % nähern und mindestens 10 Minuten lang anhalten.
  4. Betroffene Splits identifizieren und Ergebnisse korrelieren: Wenn die CPU-Auslastung hoch ist, rufen Sie die Tabelle TopN-Splits auf. Filtern oder sortieren Sie, um die Splits mit dem höchsten CPU-Nutzungswert des Splits während des Zeitraums der Auswirkung zu finden. Sehen Sie sich die Spalte UNSPLITTABLE_REASONS für diese Top-Splits an:
    • Hoher CPU-Nutzungswert für Splits und Gründe für nicht aufteilbare Splits: Dies ist ein starkes Signal dafür, dass das Leistungsproblem mit Hotspots zusammenhängt, die Spanner nicht automatisch beheben kann. Die Art des Grundes, z. B. HOT_ROW oder MOVING_HOT_SPOT, liefert einen wichtigen Hinweis.
    • Hoher CPU-Nutzungswert des Splits und keine Gründe für die Unteilbarkeit: Der Hotspot ist möglicherweise neu und Spanner ist möglicherweise noch dabei, den Split durchzuführen. Alternativ kann es sein, dass das Problem auf Änderungen an der Arbeitslast reagiert, was keine Maßnahmen Ihrerseits erfordert.
  5. Gründe verstehen: Beachten Sie die spezifischen Codes im Array UNSPLITTABLE_REASONS.
  6. Maßnahmen ergreifen: Basierend auf den ermittelten Gründen finden Sie unter UNSPLITTABLE_REASONS-Typen detaillierte Erläuterungen und empfohlene Maßnahmen, die in der Regel Änderungen am Schemadesign oder Anpassungen der Arbeitslast umfassen.

Nächste Schritte