Transaktionen identifizieren, die hohe Latenzen verursachen können

Auf dieser Seite wird beschrieben, wie Sie Statistiken zu Sperren verwenden und Mit Transaktionseinblicken können Sie Transaktionen identifizieren, die zu hohen Latenzen.

Übersicht

Um die Konsistenz mehrerer gleichzeitiger Transaktionen sicherzustellen, Spanner verwendet Sperren zur Steuerung auf die Daten zugreifen können. Ein Sperrkonflikt tritt auf, wenn für viele Transaktionen häufigen Zugriff auf dasselbe Schloss, was zu hohen Latenzen führt. Ohne visuellen Benutzeroberflächen, kann es mühsam sein, die zu einer hohen Anzahl Probleme mit Sperren führen.

Spanner-Vorgänge erhalten Sperren, wenn die Vorgänge Teil eines read-write-Transaktion ausführen. Bei schreibgeschützten Transaktionen werden keine Sperren abgerufen.

Spanner hilft Ihnen, Transaktionen zu identifizieren, Latenzen auftreten, indem Sie die folgenden Schritte ausführen:

  1. Prüfen Sie mit Spanner Monitoring, ob es einen Anstieg der Latenzen gibt.
  2. Prüfen Sie mithilfe von Statistiken zu Sperren nach Problemen mit Sperrenkonflikten.
  3. Problematische Transaktionen mithilfe von Transaktionsstatistiken identifizieren

Preise

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

Regionskonfigurationen

Statistiken zu Sperren und Transaktionsstatistiken sind verfügbar in regionale und multiregionale Konfigurationen.

Datenaufbewahrung

Die maximale Aufbewahrungsdauer für die auf der Die Dashboards „Sperrstatistiken“ und „Transaktionsstatistiken“ haben 30 Tage. Für Grafiken: Daten werden aus SPANNER_SYS.* Tabellen mit einer maximalen Aufbewahrung abgerufen für einen Zeitraum von 30 Tagen.

Weitere Informationen zu diesen Tabellen und zur Datenaufbewahrung finden Sie unter Sperren Sie Statistiken und Transaktionsstatistiken:

Erforderliche Rollen

Sie benötigen unterschiedliche IAM-Rollen und -Berechtigungen, je nachdem, wenn Sie IAM-Nutzer oder Nutzer mit detaillierter Zugriffssteuerung sind.

Nutzer von Identity and Access Management (IAM)

So erhalten Sie die erforderlichen Berechtigungen zum Aufrufen der Seite „Sperr- und Transaktionsstatistiken“: bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für die Instanz:

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

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

Nutzer mit detaillierter Zugriffssteuerung

Wenn Sie mit einer detaillierten Zugriffssteuerung arbeiten, achten Sie auf Folgendes:

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

Weitere Informationen finden Sie unter Über die detaillierte Zugriffssteuerung und Detailgenaue Rollen für das Zugriffssteuerungssystem.

Mit Spanner Monitoring nach einem Anstieg der Latenzen suchen

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

Wenn Sie eine Benachrichtigung erhalten, die auf einen Anstieg der Latenzen für einen können Sie das im Spanner Monitoring-Dashboard mit Diagrammen für verschiedene wichtige Messwerte. Im Diagramm Latenz sehen Sie hohe beim 50. und 99. Perzentil.

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 einzelnen Instanz.

  4. Setzen Sie im Diagramm Latenz die Funktion auf Write und Perzentil auf 99th.

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

Ein Diagramm, das Schreiblatenzen beim 99. Perzentil zeigt

Wenn Sie feststellen, dass die CPU-Auslastung nicht ansteigt und Vorgänge pro Sekunde ist es wahrscheinlich, dass Latenzspitzen auf die Sperre Konflikten.

Mithilfe von Sperrstatistiken auf Probleme mit Sperrenkonflikten prüfen

Im Dashboard für Schlossstatistiken können Sie die Wartezeit oder eine ausgewählte Datenbank. Sie können damit prüfen, ob hohe Latenzen aufgrund von Sperrenkonflikten.

Prüfen, ob lange Wartezeiten bei Sperren vorliegen

So prüfen Sie, ob lange Wartezeiten bei Sperren vorliegen:

  1. Klicken Sie im Navigationsmenü auf Statistiken sperren.

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

    Die angezeigten Daten beziehen sich standardmäßig auf 1 hour, da die Zeitauswahl auf der oben rechts im Dashboard mit Statistiken zu Sperren angezeigt. Daten aufrufen Um den Bereich zu vergrößern, 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 aus, die höchste Wartezeit bei Sperren.

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

    Darüber hinaus enthält ein weiteres Diagramm, Sperrwartezeit pro Zeilenbereich, Diagramme für die Wartezeit nach Zeilenbereichen sperren.

  3. Klicken Sie auf das Diagramm und ziehen Sie horizontal, um die Stunde zu erweitern, in der die Latenz deutlich sichtbar sind.

Dashboard mit Statistiken zu Sperren

Daten zur Wartezeit bei Sperren analysieren

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

  • Startschlüssel des Zeilenbereichs: Der Zeilenschlüssel, in dem der Sperrkonflikt aufgetreten ist. Wann? umfasst der Konflikt eine Reihe von Zeilen, der Wert steht für den Startschlüssel Bereich. Ein Pluszeichen (+) zeigt einen Bereich an.
  • Wartezeit bei der Sperre: Die Gesamtwartezeit bei der Sperre, dargestellt auf einer horizontalen Leiste. Von Standardmäßig wird diese Spalte in der Tabelle für die Sortierung verwendet. Der Startschlüssel für den Zeilenbereich wird angezeigt. mit der höchsten Wartezeit für Sperren.
  • Wartezeit bei Sperren (Sekunden): Die kumulative Wartezeit bei aufgezeichneten Sperrkonflikten. für alle Spalten im Zeilenschlüsselbereich in Sekunden.
  • Wartezeit bei Sperren (%): Die Wartezeit der Sperrkonflikte, die für alle aufgezeichneten Spalten im Zeilenschlüsselbereich als Prozentsatz der gesamten Sperrwartezeit für alle Zeilenschlüsselbereiche in der Datenbank.

Um die Daten im Diagramm Sperrwartezeit pro Zeilenbereich mit den Daten in Beziehung zu setzen wählen Sie eine Zeile aus. Die zugehörige Zeile wird markiert. Umgekehrt wählen Sie das Kästchen für eine Zeile in der Tabelle, 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 zeigt Daten, die dem Filter entsprechen.

Beispiele für Sperranfragen ansehen

Im Bereich Beispiele für Sperranfragen werden Details zu Beispielsperren angezeigt. Anfragen von konkurrierenden Transaktionen.

Um Beispielinformationen zu einer Sperranfrage für einen Zeilenbereich-Startschlüssel anzuzeigen, klicken Sie auf auf den zugehörigen Link in der Tabelle.

Die Tabelle enthält die folgenden Informationsspalten:

  • Beispielspaltenname: Die Spalte, in der die Sperre aufgehoben wurde. Zeilenschlüsselbereich.
  • Sperrmodus: Der angeforderte Sperrmodus.
  • Transaktionen abrufen: Ein Link zur Seite Transaktionsstatistiken, auf der zeigt die Transaktionen an, die möglicherweise um Sperren konkurrieren.

Detailseite der Sperrstatistiken

Konkurrenztransaktionen mithilfe von Transaktionsstatistiken identifizieren

Im Dashboard für Transaktionsstatistiken sehen Sie die Latenz von Transaktionen auf eine Instanz oder eine ausgewählte Datenbank. Sie können damit Transaktionen identifizieren, das aufgrund von Sperrkonflikten zu hohen Latenzen führen kann.

Latenzen von Transaktionen ansehen

So lassen Sie sich die Latenz von Transaktionen anzeigen:

  1. Klicken Sie im linken Navigationsbereich auf Transaktionsstatistiken.

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

    Alternativ können Sie im Dashboard für Statistiken zu Sperren auf Ansehen Transaktionen, um Transaktionen zu filtern, die in einem bestimmten Beispielspalte angezeigt.

    Die angezeigten Daten beziehen sich standardmäßig auf 1 hour, da die Zeitauswahl auf der in der oberen rechten Ecke des Dashboards „Transaktionsstatistiken“ angezeigt wird.

Das Dashboard enthält die folgenden Diagramme:

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

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

Das Transaction Insights-Dashboard

Transaktionsdaten analysieren

Sie können Daten für jede Transaktion in der Tabelle unter dem . Die Tabelle enthält Messwertdaten aus SPANNER_SYS.TXN_STATS. Systemtabellen in die folgenden Spalten ein:

  • Fingerprint (Fingerabdruck): Der Hash des Transaktions-Tags, sofern vorhanden. Andernfalls wird das Hash wird basierend auf den an der Transaktion beteiligten Vorgängen berechnet. Der Wert ist Link zur Seite „Transaktionsdetails“
  • Transaktions-Tag: Das optionale Transaktions-Tag für die Transaktion. Statistische Daten für mehrere Transaktionen mit demselben Tag String in einer einzelnen Zeile mit dem Label TRANSACTION_TAG gruppiert, das dem Tag-String.
  • Betroffene Tabellen: Die von der Transaktion betroffenen Tabellen.
  • Table.column Read: Die Spalten, aus denen die Transaktion gelesen hat.
  • Table.column embedded: Die Spalten, in die die Transaktion geschrieben hat.
  • Durchschn. Latenz (Sekunden): Durchschnittlich für die Durchführung der Transaktion benötigte Sekunden Standardmäßig wird die Tabelle nach dieser Spalte in absteigender Reihenfolge sortiert.

Um die Daten im Diagramm Durchschnittliche Latenz (pro Transaktion) mit dem Diagramm wählen Sie im Diagramm eine Linie aus. Die entsprechende Zeile in der Tabelle 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 zeigt Daten, die dem Filter entsprechen.

Tabelle „Transaktionsstatistiken“

Detaillierte Informationen zu einer Transaktion ansehen

Um detaillierte Informationen zu einer Transaktion aufzurufen, z. B. die mit dem Latenz hoch, klicken Sie in der entsprechenden Zeile der Tabelle auf den Link Fingerabdruck.

Die Seite Transaktionsdetails wird angezeigt. Neben der Detailtabelle oben werden folgende Informationen angezeigt:

  • Eine Leiste mit numerischen Werten für jeden der folgenden Messwerte:

    • Durchschnittliche Byte: Die durchschnittliche Anzahl der von der Transaktion geschriebenen Byte.
    • Durchschnittliche Latenz: Die durchschnittliche Latenz in Sekunden, die vom ersten Vorgang des Transaktion fest, für die ein Commit durchgeführt oder abgebrochen werden soll.
    • Durchschnittliche Commit-Latenz: Die durchschnittliche Zeit in Sekunden, die für die Ausführung des Commit-Vorgangs benötigt wird.
    • Gesamtzahl der Versuche: Die Gesamtzahl der Transaktionsversuche.
    • Gesamtzahl der Abbrüche: Die Gesamtzahl der durchgeführten Transaktionsversuche. abgebrochen, einschließlich derjenigen, die abgebrochen wurden, bevor die commit-Methode fest.
  • Diagramme, die diese Werte darstellen.

    Darüber hinaus enthält das Diagramm Durchschnittliche Teilnehmerzahl zeigt die durchschnittliche Anzahl der Teilnehmer an bei jedem Commit-Versuch.

Detailseite der Transaktionsstatistiken

Prüfen Sie, ob die Transaktionsform optimiert werden kann, um Latenzen zu reduzieren. Sie können die empfohlenen Praktiken anwenden, um Konflikte mit Sperren zu reduzieren.

Weitere Informationen