Transaktionen identifizieren, die hohe Latenzen verursachen können

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

Überblick

Damit die Konsistenz mehrerer gleichzeitiger Transaktionen sichergestellt ist, verwendet Spanner Sperren, um den Zugriff auf die Daten zu steuern. Sperrenkonflikte treten auf, wenn viele Transaktionen häufigen Zugriff auf dieselbe Sperre erfordern, was zu hohen Latenzen führt. Ohne visuelle Schnittstelle kann es mühsam sein, die problematischen Transaktionen zu identifizieren, die zu vielen Problemen mit Sperrenkonflikten führen.

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

Spanner unterstützt Sie beim Identifizieren von Transaktionen, die zu hohen Latenzen führen, indem die folgenden Schritte ausgeführt werden:

  1. Mit Spanner Monitoring nach einem Anstieg der Latenzen suchen.
  2. Anhand von Statistiken zu Sperren können Sie nach Problemen mit Sperrenkonflikten suchen.
  3. Problematische Transaktionen mithilfe von Transaction Insights identifizieren

Preise

Für Statistiken zu Sperren oder Transaktionen fallen keine zusätzlichen Kosten an.

Regionskonfigurationen

Sperrstatistiken und Transaktionsstatistiken sind sowohl in regionalen als auch in multiregionalen Konfigurationen verfügbar.

Datenaufbewahrung

Die maximale Datenaufbewahrung für die Daten, die auf den Dashboards „Sperrinformationen“ und „Transaktionsinformationen“ angezeigt werden, beträgt 30 Tage. Für Grafiken 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 Sperrstatistiken und Transaktionsstatistiken.

Erforderliche Rollen

Sie benötigen unterschiedliche IAM-Rollen und -Berechtigungen, je nachdem, ob Sie IAM-Nutzer oder Nutzer einer detaillierten Zugriffssteuerung sind.

IAM-Nutzer (Identity and Access Management)

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Instanz zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Aufrufen der Seite „Sperr- und Transaktionsstatistiken“ benötigen:

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

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

Nutzer der detaillierten Zugriffssteuerung

Wenn Sie ein Nutzer der detaillierten Zugriffssteuerung sind, müssen Sie Folgendes beachten:

  • Verwenden Sie den Cloud Spanner-Betrachter(roles/spanner.viewer).
  • Sie haben nur detaillierte Zugriffssteuerungsberechtigungen und haben die Systemrolle spanner_sys_reader oder eine ihrer Mitgliederrollen.
  • Wählen Sie auf der Übersichtsseite der Datenbank die Rolle spanner_sys_reader oder ein Mitglied als aktuelle Systemrolle aus.

Weitere Informationen finden Sie unter Details zur fein abgestimmten Zugriffssteuerung und detaillierte Zugriffssteuerungssystemrollen.

Mit Spanner Monitoring auf einen Anstieg der Latenzen prüfen

Sie können Cloud Monitoring verwenden, um Benachrichtigungen für Messwerte festzulegen, die die angegebenen Grenzwerte für alle Anfragen überschreiten.

Wenn Sie eine Benachrichtigung erhalten, die auf einen Anstieg der Latenzen für eine Instanz hinweist, können Sie dies im Spanner Monitoring-Dashboard überprüfen. Dort finden Sie Diagramme für verschiedene wichtige Messwerte. Im Diagramm Latenz können Sie hohe Latenzen für das 50. und 99. Perzentil anzeigen.

So bestätigen Sie einen Anstieg der Schreiblatenzen beim 99. Perzentil:

  1. Rufen Sie in der Google Cloud Console 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.

    In der Google Cloud Console werden Datendiagramme für die Instanz angezeigt.

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

  5. Sehen Sie sich das aktualisierte Diagramm an, um zu prüfen, ob Spitzen angezeigt werden.

Ein Diagramm, das Schreiblatenzen beim 99. Perzentil zeigt

Wenn Sie feststellen, dass die CPU-Auslastung nicht zunimmt und die Fehler bei den Vorgängen pro Sekunde stark ansteigen, sind Latenzspitzen wahrscheinlich auf Sperrkonflikte zurückzuführen.

Mit Sperrstatistiken nach Problemen mit Sperrenkonflikten suchen

Mit dem Dashboard für Sperrstatistiken können Sie die Wartezeit für Sperren in einer Instanz oder ausgewählten Datenbank anzeigen lassen. So können Sie feststellen, ob hohe Latenzen auf Sperrkonflikte zurückzuführen sind.

Auf lange Wartezeit bei Sperren prüfen

So prüfen Sie eine lange Wartezeit bei Sperren:

  1. Klicken Sie im Navigationsmenü auf Statistiken sperren.

    In der Google Cloud Console wird das Diagramm Gesamtwartezeit bei Sperren für jede Datenbank in der Instanz angezeigt.

    Die angezeigten Daten beziehen sich standardmäßig auf 1 hour, wie in der Zeitauswahl rechts oben im Dashboard mit Sperrstatistiken angezeigt. Wenn Sie Daten für einen größeren Bereich sehen möchten, wählen Sie eine andere Option wie 1 day aus.

    Weitere Informationen finden Sie unter Mit Diagrammen arbeiten.

  2. Wählen Sie in der Auswahl Datenbanken oben die Datenbank aus, die die höchste Wartezeit bei Sperren anzeigt.

    Das Diagramm Gesamtwartezeit bei Sperren wird aktualisiert und zeigt nur Daten für die ausgewählte Datenbank an.

    Darüber hinaus zeigt ein weiteres Diagramm, Wartezeit bei Sperren pro Zeilenbereich, Diagramme zur Wartezeit bei Sperren nach Zeilenbereichen an.

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

Dashboard für Statistiken zu Sperren

Daten zu Wartezeiten bei Sperren analysieren

Die Tabelle Lock Insights enthält die folgenden Spalten aus den SPANNER_SYS.LOCK_STATS-Systemtabellen:

  • Startschlüssel des Zeilenbereichs: Der Zeilenschlüssel, in dem der Sperrkonflikt aufgetreten ist. Wenn der Konflikt einen Zeilenbereich betrifft, stellt der Wert den Startschlüssel des Bereichs dar. Ein Pluszeichen (+) steht für einen Bereich.
  • Wartezeit bei Sperren: Die Gesamtwartezeit bei Sperren, dargestellt auf einem horizontalen Balken. In der Tabelle wird diese Spalte standardmäßig zum Sortieren verwendet und der Startschlüssel des Zeilenbereichs mit der höchsten Wartezeit bei Sperren oben angezeigt.
  • Wartezeit bei Sperren (Sekunden): Die kumulative Wartezeit bei Sperren von Sperren, die für alle Spalten im Zeilenschlüsselbereich aufgezeichnet wurden, in Sekunden.
  • Wartezeit bei Sperren (%): Die Wartezeit von Sperrkonflikten, die für alle Spalten im Zeilenschlüsselbereich aufgezeichnet wurde, als Prozentsatz der gesamten Wartezeit für Sperren für alle Zeilenschlüsselbereiche in der Datenbank.

Wählen Sie eine Zeile aus, um die Daten im Diagramm Wartezeit durch Sperren pro Zeilenbereich mit den Daten in der Tabelle zu korrelieren. Die zugehörige Zeile wird hervorgehoben. Klicken Sie hingegen das Kästchen für eine Zeile in der Tabelle an, um die zugehörige Linie im Diagramm zu sehen.

Tabelle mit Statistiken zu Sperren

So filtern Sie die Daten in der Tabelle:

  1. Klicken Sie in das Textfeld neben Filter.

  2. Wählen Sie eine Eigenschaft und einen Operator aus und geben Sie einen Wert an.

Die Tabelle enthält Daten, die dem Filter entsprechen.

Beispiele für Sperranfragen ansehen

Der Bereich Beispiele für Sperranfragen enthält Details zu Beispielen für Sperranfragen aus konkurrierenden Transaktionen.

Wenn Sie Beispielinformationen zu Sperranfragen für einen Startschlüssel des Zeilenbereichs ansehen möchten, klicken Sie in der Tabelle auf den entsprechenden Link.

Die Tabelle enthält die folgenden Informationsspalten:

  • Beispielspaltenname: Die Spalte, in der der Sperrkonflikt im Zeilenschlüsselbereich aufgetreten ist.
  • Sperrmodus: Der angeforderte Sperrmodus.
  • Transaktionen abrufen: Ein Link zur Seite Transaktionsinformationen, auf der die Transaktionen angezeigt werden, die möglicherweise um Sperren konkurrieren.

Detailseite der Statistiken zu Sperren

Konkurrierende Transaktionen mithilfe von Transaktionsstatistiken identifizieren

Im Dashboard für Transaktionsstatistiken können Sie die Latenz von Transaktionen für eine Instanz oder ausgewählte Datenbank anzeigen. Es kann Ihnen helfen, die Transaktionen zu identifizieren, die aufgrund von Sperrenkonflikten zu hohen Latenzen führen können.

Latenzen von Transaktionen ansehen

So rufen Sie die Latenz von Transaktionen auf:

  1. Klicken Sie im linken Navigationsbereich auf Transaktionsinformationen.

  2. Wählen Sie in der Auswahl Datenbanken oben die Datenbank aus, die die höchste Wartezeit bei Sperren anzeigt.

    Alternativ können Sie im Dashboard für Sperrstatistiken auf Transaktionen abrufen 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 die Zeitauswahl rechts oben im Dashboard für Transaktionsinformationen anzeigt.

Im Dashboard werden die folgenden Diagramme angezeigt:

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

  • Im Diagramm Durchschnittliche Latenz (pro Transaktion) wird die Latenz jeder Transaktion für die ausgewählte Datenbank angezeigt.

Das Dashboard für Transaktionsinformationen

Transaktionsdaten analysieren

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

  • Fingerprint (Fingerabdruck): Der Hash des Transaktions-Tags, falls vorhanden. Andernfalls wird der Hash anhand der an der Transaktion beteiligten Vorgänge berechnet. Der Wert ist ein Link, der zur Seite mit den Transaktionsdetails führt.
  • 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 von der Transaktion betroffenen Tabellen.
  • Table.column Read: Die Spalten, aus denen die Transaktion gelesen wurde.
  • Table.column writer: Die Spalten, in die die Transaktion geschrieben wurde.
  • Durchschn. Latenz (Sekunden): Durchschnittliche Dauer der Transaktion in Sekunden. Standardmäßig wird die Tabelle in absteigender Reihenfolge nach dieser Spalte sortiert.

Um die Daten im Diagramm Durchschnittliche Latenz (pro Transaktion) mit den Daten in der Tabelle zu korrelieren, 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 Eigenschaft und einen Operator aus und geben Sie einen Wert an.

Die Tabelle enthält Daten, die dem Filter entsprechen.

Tabelle mit Transaktionsstatistiken

Detaillierte Informationen zu einer Transaktion ansehen

Um detaillierte Informationen zu einer Transaktion anzuzeigen, z. B. die mit der höchsten Latenz, klicken Sie in der entsprechenden Zeile der Tabelle auf den Link Fingerabdruck.

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

  • Ein Balken mit numerischen Werten für jeden dieser Messwerte:

    • Durchschnittliche Byte: Die durchschnittliche Anzahl der Byte, die von der Transaktion geschrieben wurden.
    • Durchschnittliche Latenz: Die durchschnittliche Zeit in Sekunden, die vom ersten Vorgang der Transaktion bis zum Commit oder Abbruch benötigt wird.
    • Durchschnittliche Commit-Latenz: Durchschnittliche Dauer in Sekunden, die für die Ausführung des Commit-Vorgangs benötigt wird.
    • Versuche insgesamt: Die Gesamtzahl der Transaktionsversuche.
    • Gesamtanzahl der Abbruch: Die Gesamtzahl der abgebrochenen Transaktionsversuche, einschließlich der abgebrochenen Transaktionsversuche, bevor die Commit-Methode der Transaktion aufgerufen wird.
  • Diagramme, in denen diese Werte dargestellt werden.

    Darüber hinaus zeigt das Diagramm Durchschnittliche Teilnehmer die durchschnittliche Anzahl der Teilnehmer bei jedem Commit-Versuch.

Detailseite der Transaktionsstatistiken

Prüfen Sie, ob die Transaktionsform optimiert werden kann, um Latenzen zu reduzieren. Wenden Sie die empfohlenen Vorgehensweisen an, um Konflikte an Sperren zu reduzieren.

Weitere Informationen