Diese Seite gibt einen Überblick über die übergeordneten Komponenten Spanner-Anfrage und wie sich die einzelnen Komponenten auf die Latenz auswirken können.
Spanner API-Anfragen
Zu den übergeordneten Komponenten, die zum Erstellen einer Spanner API-Anfrage verwendet werden, gehören:
Spanner-Clientbibliotheken, die eine Abstraktionsebene über gRPC bieten und Details zur Serverkommunikation wie Sitzungsverwaltung, Transaktionen und Wiederholungsversuche verarbeiten.
Das Google Front End (GFE) ist ein Infrastrukturdienst, der für alle Google Cloud-Dienste, einschließlich Spanner, verwendet wird. Das GFE prüft, ob alle TLS-Verbindungen (Transport Layer Security) beendet werden, und schützt vor Denial-of-Service-Angriffen. Weitere Informationen zum GFE finden Sie unter Google Front End Service.
Das Spanner API-Frontend, das verschiedene Prüfungen API-Anfrage (einschließlich Authentifizierung, Autorisierung und Kontingentprüfungen) und verwaltet Sitzungen und Transaktionsstatus.
Die Spanner-Datenbank, die Lese- und Schreibvorgänge in der Datenbank ausführt.
Wenn Sie einen Remote-Prozeduraufruf an Spanner senden, wird die API-Anfrage von den Spanner-Clientbibliotheken vorbereitet. Die API-Anfrage durchläuft dann sowohl das GFE als auch das Spanner API-Frontend, bevor sie die Spanner-Datenbank erreicht.
Indem Sie die Anfragelatenzen zwischen verschiedenen Komponenten und der Datenbank messen und vergleichen, können Sie feststellen, welche Komponente das Problem verursacht. Zu diesen Latenzen gehören Client-Roundtrip, GFE, Spanner API Anforderungs- und Abfragelatenzen.
In den folgenden Abschnitten werden die einzelnen Latenztypen erläutert, die im vorherigen Diagramm zu sehen sind.
Client-Umlauflatenz
Die Client-Umlauflatenz ist die Zeit (in Millisekunden) zwischen dem ersten Byte der Spanner API-Anfrage, die der Client an die Datenbank sendet (sowohl über das GFE als auch über das Spanner API-Frontend), und dem letzten Byte der Antwort, das der Client von der Datenbank empfängt.
Der Messwert grpc.io/client/roundtrip_latency
gibt die Zeit zwischen dem ersten Byte der API-Anfrage an, die an das letzte Byte der empfangenen Antwort gesendet wird.
Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Umlauflatenz des Clients mit OpenTelemetry erfassen und visualisieren oder mit OpenCensus.
GFE-Latenz
Die Latenz von Google Front End (GFE) ist die Dauer (in Millisekunden) zwischen wenn das Google-Netzwerk einen Remote-Prozedur-Aufruf vom Client empfängt und wenn das GFE das erste Byte der Antwort empfängt. Diese Latenzzeit TCP/SSL-Handshakes enthalten.
Jede Antwort von Spanner, ob es sich um REST oder gRPC handelt, umfasst Einen Header, der die Gesamtzeit zwischen dem GFE und dem Back-End enthält (die Spanner-Dienst) für die Anfrage und die Antwort. Dieses hilft, die Quelle der Latenz zwischen dem Client und dem Google-Werbenetzwerk.
Das spanner/gfe_latency
Mit dem Messwert wird die GFE-Latenz für Spanner-Anfragen erfasst und offengelegt.
Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter GFE-Latenz mit OpenTelemetry erfassen und visualisieren oder mit OpenCensus.
Latenz von Spanner API-Anfragen
Die Spanner API-Anfragelatenz ist die Zeit (in Sekunden) zwischen dem ersten Byte der Anfrage, die das Spanner API-Frontend empfängt, und dem letzten Byte der Antwort, die das Spanner API-Frontend sendet. Die Latenz umfasst die Zeit, die für die Verarbeitung von API-Anfragen sowohl im Spanner-Backend als auch in der API-Ebene benötigt wird. Diese Latenz umfasst jedoch keinen Netzwerk- oder Reverse-Proxy-Overhead zwischen Spanner-Clients und -Servern.
Mit dem Messwert spanner.googleapis.com/api/request_latencies
wird die Latenz des Spanner API-Front-Ends für Spanner-Anfragen erfasst und angezeigt.
Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Spanner API-Anfragelatenz mit OpenTelemetry erfassen und visualisieren oder mit OpenCensus.
Abfragelatenz
Die Abfragelatenz ist die Zeit in Millisekunden, die zum Ausführen von SQL-Abfragen in der Spanner-Datenbank benötigt wird.
Die Abfragelatenz ist für die API executeSql verfügbar.
Wenn die QueryMode
auf PROFILE
gesetzt ist, dann ist die
ResultSetStats
sind in den Antworten enthalten.
Wenn Sie QueryMode
auf PROFILE
setzen, werden sowohl der Abfrageplan als auch die Ausführungsstatistiken zusammen mit den Ergebnissen zurückgegeben. Außerdem
ResultSetStats
enthält die verstrichene Zeit für die Ausführung von Abfragen in
in der Spanner-Datenbank.
Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Abfragelatenz mit OpenTelemetry erfassen und visualisieren oder mit OpenCensus.
Nächste Schritte
- Informationen zum Identifizieren von Latenzpunkten in Spanner-Komponenten