Auf dieser Seite werden die von Spanner bereitgestellten Latenzmesswerte beschrieben. Wenn in Ihrer Anwendung eine hohe Latenz auftritt, können Sie das Problem mithilfe dieser Messwerte diagnostizieren und beheben.
Sie können diese Messwerte in der Google Cloud Console und in der Cloud Monitoring Console aufrufen.
Übersicht über die Latenzmesswerte
Die Latenzmesswerte für Spanner geben an, wie lange es gedauert hat, bis der Spanner-Dienst eine Anfrage verarbeitet hat. Der Messwert erfasst den tatsächlichen verstrichene Zeit und nicht die CPU-Zeit, die Spanner verwendet werden.
Diese Latenzmesswerte umfassen keine Latenzzeiten, die außerhalb von Spanner auftreten, z. B. Netzwerklatenzzeiten oder Latenzzeiten in Ihrer Anwendungsebene. Zum Messen anderer Latenzarten können Sie Cloud Monitoring verwenden, um Ihre Anwendung mit benutzerdefinierten Messwerten zu messen.
Sie können Diagramme der Latenzmesswerte in der Google Cloud Console und in der Cloud Monitoring Console anzeigen. Sie können sich kombinierte Latenzmesswerte, die sowohl Lese- als auch Schreibvorgänge umfassen, oder separate Messwerte für Lese- und Schreibvorgänge anzeigen lassen.
Basierend auf der Latenz jeder Anfrage gruppiert Spanner die Anfragen in Perzentile. Sie können sich Latenzmesswerte für die Latenz des 50. Perzentils und des 99. Perzentils anzeigen lassen:
Latenz des 50. Perzentils: Die maximale Latenz in Sekunden für die schnellsten 50 % aller Anfragen. Wenn beispielsweise die Latenz des 50. Perzentils 0,5 Sekunden beträgt, hat Spanner 50 % der Anfragen in weniger als 0,5 Sekunden verarbeitet.
Dieser Messwert wird manchmal als mittlere Latenz bezeichnet.
Latenz des 99. Perzentils: Die maximale Latenz in Sekunden für die schnellsten 99 % der Anfragen. Wenn beispielsweise die Latenz des 99. Perzentils 2 Sekunden beträgt, hat Spanner 99 % der Anfragen in weniger als 2 Sekunden verarbeitet.
Latenz und Vorgänge pro Sekunde
Wenn eine Instanz eine kleine Anzahl von Anfragen innerhalb eines bestimmten Zeitraums verarbeitet, sind die Latenzen des 50. und 99. Perzentils in diesem Zeitraum keine aussagekräftigen Indikatoren für die Gesamtleistung der Instanz. Unter diesen Umständen kann eine sehr kleine Anzahl von Ausreißern die Latenzmesswerte drastisch ändern.
Angenommen, eine Instanz verarbeitet 100 Anfragen innerhalb einer Stunde. In diesem Fall entspricht die Latenz des 99. Perzentils für die Instanz in dieser Stunde der Zeit, die für die Verarbeitung der langsamsten Anfrage benötigt wurde. Eine Latenzmessung auf Basis einer einzelnen Anfrage ist nicht aussagekräftig.
Latenzprobleme diagnostizieren
In den folgenden Abschnitten wird beschrieben, wie Sie einige häufig auftretende Probleme diagnostizieren, die zu einer hohen End-to-End-Latenz Ihrer Anwendung führen können.
Einen schnellen Überblick über die Latenzmetriken einer Instanz erhalten Sie über die Methode Google Cloud Console Wenn Sie die Messwerte genauer untersuchen und nach Korrelationen zwischen Latenz und anderen Messwerten durchsuchen möchten, verwenden Sie die Cloud Monitoring Console.
Hohe Gesamtlatenz, niedrige Spanner-Latenz
Wenn in Ihrer Anwendung eine höhere Latenz als erwartet auftritt, die Latenzmesswerte für Spanner jedoch erheblich niedriger sind als die gesamte End-to-End-Latenz, liegt möglicherweise ein Problem im Anwendungscode vor. Wenn Ihre Anwendung ein Leistungsproblem hat, das dazu führt, dass einige Codepfade langsam sind, kann sich die Gesamtwartezeit für jede Anfrage erhöhen.
Sie können dieses Problem beheben, indem Sie bei Ihrer Anwendung einen Leistungstest durchführen, um Codepfade zu identifizieren, die langsamer als erwartet sind.
Sie können auch den Code auskommentieren, der mit Spanner kommuniziert, um die Gesamtlatenz erneut zu messen. Wenn sich die Gesamtlatenz kaum ändert, dann ist Spanner wahrscheinlich nicht der Grund für die hohe Latenz.
Hohe Gesamtlatenz, hohe Spanner-Latenz
Wenn die Latenz Ihrer Anwendung höher als erwartet ist und der Die Spanner-Latenzmesswerte sind ebenfalls hoch. Dafür gibt es einige wahrscheinliche Ursachen:
Ihre Instanz benötigt mehr Rechenkapazität. Wenn Ihre Instanz nicht genügend CPU-Ressourcen und seine CPU-Auslastung überschreitet den empfohlenen verwenden, kann Spanner die Datei unter Umständen nicht schnell und effizient abrufen können.
Einige Ihrer Abfragen verursachen eine hohe CPU-Auslastung. Wenn Ihre Abfragen nicht Nutzen Sie Spanner-Features zur Verbesserung der Effizienz, z. B. Abfrageparameter und sekundäre Indexe oder eine große Anzahl von Joins oder andere CPU-intensive können die Abfragen einen großen Teil der CPU-Ressourcen Instanz.
Verwenden Sie die Cloud Monitoring Console, um nach einer Korrelation zwischen hoher CPU-Auslastung und hoher Latenz zu suchen. Überprüfen Sie außerdem die Abfragestatistik für die Instanz, um alle CPU-intensiven Abfragen im selben Zeitraum zu ermitteln.
Wenn die CPU-Auslastung und die Latenzzeit gleichzeitig hoch sind, können Sie das Problem so beheben:
Wenn Sie nicht viele CPU-intensive Abfragen gefunden haben, fügen Sie der Instanz Rechenkapazität hinzu.
Durch Hinzufügen von Rechenkapazität stehen mehr CPU-Ressourcen zur Verfügung und Spanner zur Bewältigung einer größeren Arbeitslast erstellen können.
Wenn Sie CPU-intensive Abfragen gefunden haben, überprüfen Sie die Abfrageausführung Pläne, um zu erfahren, warum Abfragen langsam sind, und aktualisieren Sie Abfragen den bewährten SQL-Methoden für Spanner
Möglicherweise müssen Sie auch den Schemaentwurf für die Datenbank überprüfen und das Schema aktualisieren, um effizientere Abfragen zu ermöglichen.
Nächste Schritte
- Überwachen Sie Ihre Instanz mit der Google Cloud Console oder in der Cloud Monitoring-Konsole
- Erfahren Sie, wie Sie Korrelationen zwischen hoher Latenz und anderen Messwerten finden.
- Leselatenz mithilfe der Best Practices für SQL verringern und Zeitstempelgrenzen verwenden
- Informieren Sie sich über Latenzmesswerte in Abfragestatistiktabellen, die Sie mit SQL-Anweisungen abrufen können.
- Erfahren Sie, wie sich die Instanzkonfiguration auf die Latenz auswirkt.