Auf dieser Seite erhalten Sie einen Überblick über die übergeordneten Komponenten, die an einer Cloud Spanner-Anfrage beteiligt sind, und dazu, wie sich die einzelnen Komponenten auf die Latenz auswirken können.
Spanner API-Anfragen
Zu den übergeordneten Komponenten, die zum Senden einer Spanner API-Anfrage verwendet werden, gehören:
Spanner-Clientbibliotheken, die eine Abstraktionsebene über gRPC ergänzen und Details zur Serverkommunikation wie Sitzungsverwaltung, Transaktionen und Wiederholungsversuche verarbeiten.
Das Google Front End (GFE), ein Infrastrukturdienst, der allen Google Cloud-Diensten gemeinsam ist, einschließlich Spanner. Das GFE überprüft, ob alle TLS-Verbindungen (Transport Layer Security) beendet wurden, und wendet Schutz vor Denial-of-Service-Angriffen an. Weitere Informationen zum GFE finden Sie unter Google Front-End-Dienst.
Das Spanner API-Front-End, das verschiedene Prüfungen der API-Anfrage (einschließlich Authentifizierungs-, Autorisierungs- und Kontingentprüfungen) durchführt und Sitzungen und Transaktionsstatus verwaltet.
Die Spanner-Datenbank, die Lese- und Schreibvorgänge in der Datenbank ausführt.
Wenn Sie einen Remoteprozeduraufruf an Spanner senden, bereiten die Spanner-Clientbibliotheken die API-Anfrage vor. Anschließend durchläuft die API-Anfrage sowohl das GFE als auch das Spanner API-Front-End, bevor sie die Spanner-Datenbank erreicht.
Durch Messen und Vergleichen der Anfragelatenzen zwischen verschiedenen Komponenten und der Datenbank können Sie feststellen, welche Komponente das Problem verursacht. Zu diesen Latenzen gehören Client-Roundtrip-, GFE-, Spanner API-Anfrage- und Abfragelatenzen.
In den folgenden Abschnitten werden die einzelnen Latenztypen aus dem vorherigen Diagramm erläutert.
Client-Umlauflatenz
Die Umlauflatenz des Clients ist die Zeitdauer (in Millisekunden), die zwischen dem ersten Byte der Spanner API-Anfrage, die der Client über das GFE und das Spanner API-Front-End an die Datenbank sendet, und dem letzten Byte der Antwort, die der Client von der Datenbank erhält, angegeben.
Spanner-Clientbibliotheken stellen Statistiken und Traces mithilfe des Instrumentierungs-Frameworks OpenCensus bereit. Dieses Framework gibt Einblicke in die internen Strukturen des Clients und hilft bei der Behebung von End-to-End-Latenzen (Round Trip).
Standardmäßig ist das Framework deaktiviert. Informationen zum Aktivieren dieses Frameworks finden Sie unter Umlaufzeitlatenz von Clients erfassen.
Der Messwert grpc.io/client/roundtrip_latency
gibt die Zeit zwischen dem ersten Byte der API-Anfrage, die bis zum letzten Byte der erhaltenen Antwort liegt, an.
Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Umlauflatenz des Clients erfassen und visualisieren.
GFE-Latenz
Die GFE-Latenz (Google Front End) ist die Zeit (in Millisekunden) zwischen dem Empfang eines Remote-Prozeduraufrufs im Google-Netzwerk und dem Empfang des ersten Byte der Antwort durch das GFE. Diese Latenz umfasst keinen TCP/SSL-Handshake.
Jede Antwort von Spanner – ob REST oder gRPC – enthält einen Header, der die Gesamtzeit zwischen dem GFE und dem Back-End (dem Spanner-Dienst) sowohl für die Anfrage als auch für die Antwort enthält. Dies hilft dabei, die Quelle der Latenz zwischen dem Client und dem Google-Netzwerk besser zu unterscheiden.
Mit dem Messwert cloud.google.com/[language]/spanner/gfe_latency
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 erfassen und visualisieren.
Spanner API-Anfragelatenz
Die Spanner API-Anfragelatenz ist die Zeitdauer (in Sekunden) zwischen dem ersten Byte der Anfrage, das das Front-End der Spanner API empfängt, und dem letzten Byte der Antwort, die das Front-End der Spanner API sendet. Die Latenz beinhaltet die Zeit, die für die Verarbeitung von API-Anfragen im Spanner-Back-End und auf der API-Ebene benötigt wird. Diese Latenz umfasst jedoch nicht den Netzwerk- oder Reverse-Proxy-Overhead zwischen Spanner-Clients und -Servern.
Der Messwert spanner.googleapis.com/api/request_latencies
erfasst und macht die Front-End-Latenz der Spanner API für Spanner-Anfragen verfügbar.
Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Latenz von Spanner API-Anfragen erfassen und visualisieren.
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 executeSql API verfügbar.
Wenn der Parameter QueryMode
auf PROFILE
gesetzt ist, ist ResultSetStats
von Spanner in den Antworten verfügbar.
Wenn Sie QueryMode
auf PROFILE
setzen, werden sowohl der Abfrageplan als auch die Ausführungsstatistiken zusammen mit den Ergebnissen zurückgegeben. Außerdem enthält ResultSetStats
die verstrichene Zeit für das Ausführen von Abfragen in der Spanner-Datenbank.
Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Abfragelatenz erfassen und visualisieren.