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 zu gewährleisten, verwendet Spanner Sperren, um den Zugriff auf die Daten zu steuern. Ein Sperrkonflikt tritt auf, wenn für viele Transaktionen häufigen Zugriff auf dieselbe Sperre, was zu hohen Latenzen führt. Ohne visuellen Benutzeroberflächen, kann es mühsam sein, die zu einer hohen Anzahl Probleme mit Sperrenkonflikten 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, die zu hohen Latenzen führen. Dazu werden Sie durch die folgenden Schritte geführt:
- Prüfen Sie mit Spanner Monitoring, ob es einen Anstieg der Latenzen gibt.
- Mithilfe von Statistiken zu Sperrungen auf Probleme mit Sperrinhalten prüfen
- Problematische Transaktionen mithilfe von Transaktionsstatistiken identifizieren
Preise
Für Statistiken zu Sperren oder Transaktionsstatistiken 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. Bei 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)
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 „Sperrungen und Transaktionen“ benötigen:
-
Cloud Spanner-Betrachter (
roles/spanner.viewer
) -
Cloud Spanner-Datenbank-Leser (
roles/spanner.databaseReader
)
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
Detaillierte Zugriffssteuerung für Nutzer
Wenn Sie die detaillierte Zugriffssteuerung verwenden, beachten Sie Folgendes:
- Sie haben die Rolle 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 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 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 Latenzen beim 50. und 99. Perzentil.
So bestätigen Sie einen Anstieg der Schreiblatenzen beim 99. Perzentil:
Rufen Sie in der Google Cloud Console die Seite Spanner-Instanzen auf.
Klicken Sie auf den Namen der Instanz.
In der Google Cloud Console wird eine Übersicht der Instanz angezeigt.
Klicken Sie im Navigationsmenü auf Monitoring.
In der Google Cloud Console werden Diagramme mit Daten für die Instanz angezeigt.
Legen Sie im Diagramm Latenz für Funktion den Wert
Write
und für Perzentil den Wert99th
fest.Sehen Sie im aktualisierten Diagramm nach, ob es Spitzen gibt.
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 „Sperrbalken“ können Sie die Wartezeit bei Sperren in einer Instanz oder einer ausgewählten Datenbank aufrufen. Sie können damit prüfen, ob hohe Latenzen aufgrund von Sperrenkonflikten.
Hohe Wartezeit bei Sperren prüfen
So prüfen Sie, ob lange Wartezeiten bei Sperren vorliegen:
Klicken Sie im Navigationsmenü auf Statistiken sperren.
In der Google Cloud Console wird das Diagramm Gesamte Sperrwartezeit angezeigt, das die Sperrwartezeit für jede Datenbank in der Instanz enthält.
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.
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.
Im Diagramm Wartezeit der Sperre pro Zeilenbereich sind außerdem Grafiken für die Wartezeit der Sperre nach Zeilenbereichen zu sehen.
Klicken Sie auf das Diagramm und ziehen Sie es horizontal, um die Stunde zu maximieren, in der ein Latenzspitzen zu sehen ist.
Daten zur Wartezeit bei Sperren 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 (
+
) zeigt einen Bereich an. - Wartezeit bei der Sperre: Die Gesamtwartezeit bei der Sperre, dargestellt auf einem horizontalen Balken. 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 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 markiert. Umgekehrt wählen Sie das Kästchen für eine Zeile in der Tabelle, um die zugehörige Linie im Diagramm zu sehen.
So filtern Sie die Daten in der Tabelle:
Klicken Sie in das Textfeld neben Filter.
Wählen Sie eine Property, einen Operator und einen Wert aus.
Die Tabelle enthält Daten, die dem Filter entsprechen.
Beispiele für Sperranfragen ansehen
Im Bereich Beispielsperrenanfragen finden Sie Details zu Beispielsperrenanfragen von konkurrierenden Transaktionen.
Wenn Sie Informationen zu einer Beispielanfrage für die Sperrung eines Startschlüssels für einen Zeilenbereich aufrufen möchten, klicken Sie in der Tabelle auf den entsprechenden Link.
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 die Transaktionen angezeigt werden, die möglicherweise um Sperren konkurrieren.
Konkurrenztransaktionen mithilfe von Transaktionsstatistiken identifizieren
Im Dashboard für Transaktionsstatistiken sehen Sie die Latenz von Transaktionen auf eine Instanz oder eine ausgewählte Datenbank. So können Sie die Transaktionen identifizieren, die aufgrund von Sperrkonflikten zu hohen Latenzen führen.
Latenzen von Transaktionen ansehen
So zeigen Sie die Latenz von Transaktionen an:
Klicken Sie im linken Navigationsbereich auf Transaktionsstatistiken.
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) wird 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.
Transaktionsdaten analysieren
Sie können Daten für jede Transaktion in der Tabelle unter dem
. 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 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 embedded: 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:
Klicken Sie neben Filter.
Wählen Sie eine Eigenschaft und einen Operator aus und geben Sie einen Wert an.
Die Tabelle enthält Daten, die dem Filter entsprechen.
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 werden folgende Informationen angezeigt:
Ein Balken mit numerischen Werten für die 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.
- 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
Darüber hinaus enthält das Diagramm Durchschnittliche Teilnehmerzahl zeigt die durchschnittliche Anzahl der Teilnehmer an bei jedem Commit-Versuch.
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.