Auf dieser Seite erfahren Sie, wie Sie Latenzprobleme in Ihren Spanner-Komponenten identifizieren und beheben.Weitere Informationen zu möglichen Latenzpunkten in einer Spanner-Anfrage finden Sie unter Latenzpunkte in einer Spanner-Anfrage.
Sie können die Anfragelatenzen zwischen verschiedenen Komponenten und der Datenbank messen und vergleichen, um festzustellen, welche Komponente die Latenz verursacht. Diese Latenzen umfassen die End-to-End-Latenz, die Google Front End-Latenz (GFE), die Latenz der Spanner API-Anfrage und die Abfragelatenz.
Prüfen Sie in Ihrer Clientanwendung, die Ihren Dienst verwendet, ob die End-to-End-Latenz gestiegen ist. Prüfen Sie die folgenden Dimensionen anhand Ihrer clientseitigen Messwerte. Weitere Informationen finden Sie unter Beschreibungen clientseitiger Messwerte.
client_name: Name und Version der Clientbibliothek.location: Die Google Cloud Region, in der die clientseitigen Messwerte veröffentlicht werden. Wenn Ihre Anwendung außerhalb vonGoogle Cloudbereitgestellt wird, werden die Messwerte in der Regionglobalveröffentlicht.method: Der Name der RPC-Methode, z. B.spanner.commit.status: Der RPC-Status, z. B.OKoderINTERNAL.
Gruppieren Sie nach diesen Dimensionen, um zu sehen, ob das Problem auf einen bestimmten Client, Status oder eine bestimmte Methode beschränkt ist. Bei biregionalen oder multiregionalen Arbeitslasten prüfen Sie, ob das Problem auf einen bestimmten Client oder eine bestimmte Spanner-Region beschränkt ist.
Prüfen Sie den Zustand Ihrer Clientanwendung, insbesondere die Computing-Infrastruktur auf der Clientseite, z. B. VM-, CPU- oder Speicherauslastung, Verbindungen und Dateideskriptoren.
Sehen Sie sich die clientseitigen Messwerte an, um die Latenz in Spanner-Komponenten zu prüfen:
a. Prüfen Sie die End-to-End-Latenz mit dem Messwert
spanner.googleapis.com/client/operation_latencies.b. Prüfen Sie die Google Front End-Latenz (GFE) mit dem Messwert
spanner.googleapis.com/client/gfe_latencies.Prüfen Sie die folgenden Dimensionen für Spanner-Messwerte:
database: der Name der Spanner-Datenbank.method: Der Name der RPC-Methode, z. B.spanner.commit.status: Der RPC-Status, z. B.OKoderINTERNAL.
Gruppieren Sie nach diesen Dimensionen, um zu sehen, ob das Problem auf eine bestimmte Datenbank, einen bestimmten Status oder eine bestimmte Methode beschränkt ist. Bei dual- oder multiregionalen Arbeitslasten sollten Sie prüfen, ob das Problem auf eine bestimmte Region beschränkt ist.
Prüfen Sie die Latenz von Spanner API-Anfragen mit dem Messwert
spanner.googleapis.com/api/request_latencies. Weitere Informationen finden Sie unter Spanner-Messwerte.Wenn Sie eine hohe End-to-End-Latenz, aber eine niedrige GFE-Latenz und eine niedrige Spanner API-Anfragelatenz haben, liegt möglicherweise ein Problem im Anwendungscode vor. Es kann auch auf ein Netzwerkproblem zwischen dem Client und dem regionalen GFE hinweisen. Wenn Ihre Anwendung ein Leistungsproblem hat, das dazu führt, dass einige Codepfade langsam sind, kann sich die End-to-End-Latenz für jede API-Anfrage erhöhen. Möglicherweise liegt auch ein Problem in der Client-Computing-Infrastruktur vor, das im vorherigen Schritt nicht erkannt wurde.
Wenn Sie eine hohe GFE-Latenz, aber eine niedrige Spanner API-Anfragelatenz haben, kann das folgende Ursachen haben:
Auf eine Datenbank aus einer anderen Region zugreifen. Diese Aktion kann zu einer hohen GFE-Latenz und einer niedrigen Spanner API-Anfragelatenz führen. Beispielsweise kann der Traffic von einem Client in der Region
us-east1, der eine Instanz in der Regionus-central1hat, eine hohe GFE-Latenz, aber eine niedrigere Spanner API-Anfragelatenz haben.Es gibt ein Problem auf der GFE-Ebene. Prüfen Sie im Google Cloud Status-Dashboard, ob in Ihrer Region laufende Netzwerkprobleme auftreten. Wenn keine Probleme auftreten, öffnen Sie eine Supportanfrage und geben Sie diese Informationen an, damit Supporttechniker bei der Fehlerbehebung beim GFE helfen können.
CPU-Auslastung der Instanz prüfen Wenn die CPU-Auslastung der Instanz über dem empfohlenen Wert liegt, sollten Sie manuell weitere Knoten hinzufügen oder Autoscaling einrichten. Weitere Informationen finden Sie unter Autoscaling.
Beobachten und beheben Sie potenzielle Hotspots oder unausgewogene Zugriffsmuster mit Key Visualizer und machen Sie alle Änderungen am Anwendungscode rückgängig, die stark mit dem Zeitraum des Problems korrelieren.
Prüfen Sie, ob sich die Zugriffsmuster geändert haben.
Prüfen Sie Query Insights und Transaction Insights, um festzustellen, ob es Engpässe bei der Abfrage- oder Transaktionsleistung gibt.
Verwenden Sie die Prozeduren unter Älteste aktive Abfragen, um teure Abfragen zu sehen, die möglicherweise einen Leistungsengpass verursachen, und brechen Sie die Abfragen bei Bedarf ab.
Verwenden Sie die Verfahren in den Abschnitten zur Fehlerbehebung in den folgenden Themen, um das Problem mit den Spanner-Introspektionstools weiter zu beheben:
Nächste Schritte
- Nachdem Sie die Komponente mit der Latenz ermittelt haben, können Sie das Problem mithilfe der integrierten clientseitigen Messwerte weiter untersuchen.
- Messwerte zur Diagnose von Latenzproblemen verwenden
- Informationen zur Fehlerbehebung bei Spanner-Fehlern vom Typ „Deadline exceeded“