Transaktionen identifizieren, die zu hohen Latenzen führen können

Auf dieser Seite wird beschrieben, wie Sie mit Sperr- und Transaktionsinformationen Transaktionen identifizieren, die zu hohen Latenzen führen.

Übersicht

Um die Konsistenz mehrerer gleichzeitiger Transaktionen zu gewährleisten, verwendet Spanner Sperren, um den Zugriff auf die Daten zu steuern. Sperrkonflikte treten auf, wenn viele Transaktionen häufigen Zugriff auf dieselbe Sperre erfordern, was zu hohen Latenzen führt. Ohne eine visuelle Benutzeroberfläche kann es mühsam sein, die problematischen Transaktionen zu identifizieren, die zu einer großen Anzahl von Sperrkonfliktproblemen führen.

Spanner-Vorgänge erhalten Sperren, wenn die Vorgänge Teil einer Lese-Schreib-Transaktion sind. Schreibgeschützte Transaktionen erhalten keine Sperren.

Spanner hilft Ihnen, Transaktionen zu identifizieren, die zu hohen Latenzen führen. Dazu werden Sie durch die folgenden Schritte geführt:

  1. Mit Spanner Monitoring nach einem Anstieg der Latenz suchen
  2. Mithilfe von Statistiken zu Sperrungen auf Probleme mit Sperrinhalten prüfen
  3. Problematische Transaktionen mithilfe von Transaktionsdaten identifizieren

Preise

Für Lock Insights oder Transaction Insights fallen keine zusätzlichen Kosten an.

Regionskonfigurationen

Informationen zu Sperren und Transaktionen sind sowohl in regionalen als auch in multiregionalen Konfigurationen verfügbar.

Datenaufbewahrung

Die maximale Datenaufbewahrungsdauer für die Daten, die in den Dashboards „Sperrbildschirmstatistiken“ und „Transaktionsstatistiken“ angezeigt werden, beträgt 30 Tage. Für Diagramme werden Daten aus SPANNER_SYS.*-Tabellen abgerufen, die eine maximale Aufbewahrungsdauer von 30 Tagen haben.

Weitere Informationen zu diesen Tabellen und zur Datenaufbewahrung finden Sie unter Sperrungsstatistiken und Transaktionsstatistiken.

Erforderliche Rollen

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

IAM-Nutzer (Identity and Access Management)

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Instanz zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen der Seite „Sperrungen und Transaktionen“ benötigen:

Die folgenden Berechtigungen in der Rolle Cloud Spanner-Datenbank-Leser (roles/spanner.databaseReader) sind erforderlich, um die Seite „Sperren und Transaktionen“ aufzurufen:

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

Nutzer mit detaillierter Zugriffssteuerung

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

  • Sie haben die Rolle Cloud Spanner-Betrachter(roles/spanner.viewer).
  • Sie haben nur Berechtigungen für die detaillierte Zugriffssteuerung und erhalten die Systemrolle spanner_sys_reader oder eine ihrer Mitgliedsrollen.
  • Wählen Sie auf der Übersichtsseite der Datenbank die spanner_sys_reader oder eine Mitgliederrolle als Ihre aktuelle Systemrolle aus.

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

Mit Spanner Monitoring nach einem Anstieg der Latenzzeiten suchen

Mit Cloud Monitoring können Sie Benachrichtigungen für Messwerte festlegen, die die angegebenen Schwellenwerte für alle Anfragen überschreiten.

Wenn Sie eine Benachrichtigung über einen Anstieg der Latenzen für eine Instanz erhalten, können Sie dies im Spanner-Monitoring-Dashboard prüfen. Dort werden Diagramme für verschiedene wichtige Messwerte angezeigt. Im Diagramm Latenz sehen Sie hohe Latenzen beim 50. und 99. Perzentil.

So prüfen Sie, ob es zu einem Anstieg der Schreiblatenzen beim 99. Perzentil gekommen ist:

  1. Rufen Sie in der Google Cloud -Konsole die Seite Spanner-Instanzen auf.

    Spanner-Instanzen aufrufen

  2. Klicken Sie auf den Namen der Instanz.

    In der Google Cloud -Console wird eine Übersicht der Instanz angezeigt.

  3. Klicken Sie im Navigationsmenü auf Monitoring.

    Die Google Cloud -Console zeigt Diagramme mit Daten für die Instanz an.

  4. Legen Sie im Diagramm Latenz für Funktion den Wert Write und für Perzentil den Wert 99th fest.

  5. Sehen Sie im aktualisierten Diagramm nach, ob es Spitzen gibt.

Ein Diagramm mit Schreiblatenzen beim 99. Perzentil

Wenn die CPU-Auslastung nicht ansteigt und die Fehler bei den Vorgängen pro Sekunde zunehmen, sind die Latenzspitzen wahrscheinlich auf die Sperrkonflikte zurückzuführen.

Mithilfe von Statistiken zu Sperren auf Probleme mit Sperrkonflikten prüfen

Im Dashboard „Sperrbalken-Statistiken“ können Sie die Wartezeit bei Sperren in einer Instanz oder einer ausgewählten Datenbank aufrufen. So können Sie feststellen, ob hohe Latenzen auf Sperrkonflikte zurückzuführen sind.

Hohe Wartezeit bei Sperren prüfen

So prüfen Sie, ob die Wartezeit für die Sperrung zu lang ist:

  1. Klicken Sie im Navigationsmenü auf Statistiken sperren.

    In der Google Cloud -Console wird das Diagramm Gesamte Sperrwartezeit angezeigt, in dem die Sperrwartezeit für jede Datenbank in der Instanz dargestellt wird.

    Die angezeigten Daten beziehen sich standardmäßig auf 1 hour, wie in der Zeitauswahl oben rechts im Dashboard „Sperrbildschirm-Statistiken“ zu sehen ist. Wenn Sie Daten für einen größeren Zeitraum sehen möchten, wählen Sie eine andere Option aus, z. B. 1 day.

    Weitere Informationen finden Sie unter Mit Diagrammen arbeiten.

  2. Wählen Sie oben in der Auswahl Datenbanken die Datenbank mit der längsten Sperrwartezeit aus.

    Das Diagramm Gesamte Sperrwartezeit wird aktualisiert und enthält nur Daten für die ausgewählte Datenbank.

    Im Diagramm Wartezeit der Sperre pro Zeilenbereich sind außerdem Grafiken für die Wartezeit der Sperre nach Zeilenbereichen zu sehen.

  3. Klicken Sie auf das Diagramm und ziehen Sie es horizontal, um die Stunde zu maximieren, in der ein Latenzspitzen zu sehen ist.

Das Dashboard „Statistiken zu Sperren“

Daten zur Sperrwartezeit analysieren

Die Tabelle Statistiken für Sperren enthält die folgenden Spalten aus den Systemtabellen SPANNER_SYS.LOCK_STATS:

  • Startschlüssel Zeilenbereich: Der Zeilenschlüssel, in dem der Sperrkonflikt aufgetreten ist. Wenn der Konflikt einen Bereich von Zeilen beinhaltet, stellt dieser Wert den Startschlüssel dieses Bereichs dar. Ein Pluszeichen (+) bezeichnet einen Bereich.
  • Wartezeit bei Sperren: Die Gesamtwartezeit bei Sperren wird in einem horizontalen Balken dargestellt. Standardmäßig wird diese Spalte für die Sortierung der Tabelle verwendet. Der Startschlüssel des Zeilenbereichs mit der höchsten Sperrwartezeit wird oben angezeigt.
  • Wartezeit der Sperre (Sekunden): Die kumulative Wartezeit der Sperre von Sperrkonflikten, die für alle Spalten im Zeilenschlüsselbereich aufgezeichnet wurden, in Sekunden.
  • Wartezeit bei Sperren (%): Die Wartezeit der Sperrkonflikte, die für alle Spalten im Zeilenschlüsselbereich aufgezeichnet wurden, als Prozentsatz der Gesamtwartezeit für Sperren für alle Zeilenschlüsselbereiche in der Datenbank.

Wenn Sie die Daten im Diagramm Wartezeit auf Sperre pro Zeilenbereich mit den Daten in der Tabelle in Beziehung setzen möchten, wählen Sie eine Linie aus. Die zugehörige Zeile wird hervorgehoben. Wenn Sie das Kästchen für eine Zeile in der Tabelle anklicken, wird die zugehörige Linie im Diagramm angezeigt.

Tabelle „Statistiken zu Sperren“

So filtern Sie die Daten in der Tabelle:

  1. Klicken Sie in das Textfeld neben Filter.

  2. Wählen Sie eine Property, einen Operator und einen Wert aus.

In der Tabelle werden Daten angezeigt, die dem Filter entsprechen.

Beispiel-Sperranfragen ansehen

Im Bereich Beispielsperrenanfragen finden Sie Details zu Beispielsperrenanfragen von konkurrierenden Transaktionen.

Wenn Sie Informationen zu einer Beispielanfrage für die Sperrung eines Zeilenbereichs mit Startschlüssel aufrufen möchten, klicken Sie in der Tabelle auf den entsprechenden Link.

Die Tabelle enthält die folgenden Spalten:

  • Name der Beispielspalte: Die Spalte, in der der Sperrkonflikt für den Zeilenschlüsselbereich aufgetreten ist.
  • Sperrmodus: Der angeforderte Sperrmodus.
  • Transaktionen abrufen: Ein Link zur Seite Transaktionsstatistiken, auf der die Transaktionen angezeigt werden, die möglicherweise um Sperren konkurrieren.

Seite mit Details zu Statistiken zu Sperren

Mithilfe von Transaktionsstatistiken konkurrierende Transaktionen identifizieren

Im Dashboard „Transaktionsstatistiken“ können Sie sich die Latenz von Transaktionen in einer Instanz oder ausgewählten Datenbank ansehen. So können Sie die Transaktionen identifizieren, die aufgrund von Sperrkonflikten zu hohen Latenzen führen.

Latenzen von Transaktionen ansehen

So rufen Sie die Latenz von Transaktionen auf:

  1. Klicken Sie im linken Navigationsbereich auf Transaktionsstatistiken.

  2. Wählen Sie oben in der Auswahl Datenbanken die Datenbank mit der längsten Wartezeit für die Sperrung aus.

    Alternativ können Sie im Dashboard „Sperrbildschirmstatistiken“ auf Transaktionen ansehen klicken, um Transaktionen zu filtern, die in eine bestimmte Beispielspalte gelesen oder geschrieben werden.

    Die angezeigten Daten beziehen sich standardmäßig auf 1 hour, wie in der Zeitauswahl oben rechts im Dashboard „Transaktionsstatistiken“ zu sehen ist.

Das Dashboard enthält die folgenden Diagramme:

  • Im Diagramm Durchschnittliche Latenz (alle Transaktionen) sehen Sie die Latenz für alle Transaktionen in der Instanz.

  • Im Diagramm Durchschnittliche Latenz (pro Transaktion) sehen Sie die Latenz für jede Transaktion in der ausgewählten Datenbank.

Das Dashboard „Transaktionsstatistiken“

Transaktionsdaten analysieren

In der Tabelle unter den Diagrammen können Sie Daten für jede Transaktion aufrufen und analysieren. Die Tabelle enthält Messwertdaten aus den Systemtabellen SPANNER_SYS.TXN_STATS in den folgenden Spalten:

  • Fingerabdruck: Der Hash des Transaktionstags, falls vorhanden. Andernfalls wird der Hash anhand der Vorgänge berechnet, die an der Transaktion beteiligt sind. Der Wert ist ein Link zur Seite Transaktionsdetails.
  • Transaktions-Tag: Das optionale Transaktions-Tag für die Transaktion. Statistische Daten für mehrere Transaktionen mit demselben Tag-String werden in einer einzelnen Zeile gruppiert, wobei das Label TRANSACTION_TAG mit dem Tag-String übereinstimmt.
  • Betroffene Tabellen: Die Tabellen, die von der Transaktion betroffen sind.
  • Table.column Read: Die Spalten, aus denen die Transaktion gelesen hat.
  • Table.column Written: Die Spalten, in die die Transaktion geschrieben hat.
  • Durchschnittliche Latenz (Sekunden): Durchschnittliche Anzahl der Sekunden, die für die Ausführung der Transaktion benötigt werden. Standardmäßig ist die Tabelle nach dieser Spalte in absteigender Reihenfolge sortiert.

Wenn Sie die Daten im Diagramm Durchschnittliche Latenz (pro Transaktion) mit den Daten in der Tabelle in Beziehung setzen möchten, wählen Sie eine Linie im Diagramm aus. Die entsprechende Zeile in der Tabelle wird hervorgehoben.

So filtern Sie die Daten in der Tabelle:

  1. Klicken Sie neben Filter.

  2. Wählen Sie eine Property, einen Operator und einen Wert aus.

In der Tabelle werden Daten angezeigt, die dem Filter entsprechen.

Tabelle „Transaktionsstatistiken“

Detaillierte Informationen zu einer Transaktion ansehen

Wenn Sie detaillierte Informationen zu einer Transaktion aufrufen möchten, z. B. zu der mit der höchsten Latenz, klicken Sie in der entsprechenden Zeile der Tabelle auf den Link Fingerabdruck.

Die Seite Transaktionsdetails wird angezeigt. Neben der Detailtabelle oben enthält die Seite die folgenden Informationen:

  • Ein Balken mit numerischen Werten für die folgenden Messwerte:

    • Durchschnittliche Anzahl von Bytes: Die durchschnittliche Anzahl der von der Transaktion geschriebenen Byte.
    • Durchschnittliche Latenz: Die durchschnittliche Anzahl der Sekunden, die vom ersten Vorgang der Transaktion bis zum Commit oder Abbruch benötigt wurden.
    • Durchschnittliche Commit-Latenz: Die durchschnittliche Anzahl der Sekunden, die für die Ausführung des Commit-Vorgangs benötigt werden.
    • Gesamtzahl der Versuche: Die Gesamtzahl der Transaktionsversuche.
    • Abbruchanzahl insgesamt: Die Gesamtzahl der abgebrochenen Transaktionsversuche, einschließlich derer, die abgebrochen werden, bevor die Commit-Methode der Transaktion aufgerufen wird.
  • Diagramme mit diesen Werten

    Im Diagramm Durchschnittliche Teilnehmer sehen Sie außerdem die durchschnittliche Anzahl der Teilnehmer an jedem Commit-Versuch.

Detailseite „Transaktionsstatistiken“

Prüfen Sie, ob die Transaktionsform optimiert werden kann, um die Latenz zu verringern. Sie können die empfohlenen Praktiken anwenden, um Sperrkennefälle zu reduzieren.

Weitere Informationen