Die Leistungsoptimierung beginnt mit der Ermittlung wichtiger Messwerte, die in der Regel mit Latenz und Durchsatz zusammenhängen. Durch das Hinzufügen von Monitoring zum Erfassen und Nachverfolgen dieser Messwerte werden Schwachstellen in der Anwendung aufgedeckt. Mithilfe von Messwerten lässt sich die Leistung verbessern.
Außerdem können Sie in vielen Monitoring-Tools Benachrichtigungen für Ihre Messwerte einrichten, damit Sie benachrichtigt werden, wenn ein bestimmter Grenzwert erreicht wird. Sie können beispielsweise eine Benachrichtigung einrichten, die Sie informiert, wenn der Prozentsatz fehlgeschlagener Anfragen um mehr als x% des normalen Niveaus steigt. Mit Monitoring-Tools können Sie ermitteln, wie die normale Leistung aussieht, und ungewöhnliche Spitzen bei Latenz, Fehleranzahl und anderen wichtigen Messwerten erkennen. Die Möglichkeit, diese Messwerte zu beobachten, ist besonders wichtig in geschäftskritischen Zeiträumen oder nachdem neuer Code in die Produktion übertragen wurde.
Latenzmesswerte identifizieren
Achten Sie darauf, dass die Benutzeroberfläche so reaktionsschnell wie möglich ist. Nutzer erwarten von mobilen Apps noch höhere Standards. Die Latenz sollte auch für Backend-Dienste gemessen und verfolgt werden, da sie unbeachtet zu Problemen mit dem Durchsatz führen kann.
Wir empfehlen, die folgenden Messwerte im Blick zu behalten:
- Anfragedauer
- Anfragedauer auf Subsystemebene (z. B. API-Aufrufe)
- Jobdauer
Messwerte für den Durchsatz ermitteln
Der Durchsatz ist ein Maß für die Gesamtzahl der Anfragen, die in einem bestimmten Zeitraum verarbeitet wurden. Der Durchsatz kann durch die Latenz von Subsystemen beeinträchtigt werden. Möglicherweise müssen Sie die Latenz optimieren, um den Durchsatz zu verbessern.
Hier sind einige Messwerte, die Sie im Blick behalten sollten:
- Abfragen pro Sekunde
- Größe der übertragenen Daten pro Sekunde
- Anzahl der E/A-Vorgänge pro Sekunde
- Ressourcennutzung, z. B. CPU- oder Arbeitsspeichernutzung
- Größe des Verarbeitungsrückstands, z. B. Pub/Sub oder Anzahl der Threads
Nicht nur der Mittelwert
Ein häufiger Fehler bei der Leistungsmessung besteht darin, nur den Durchschnitt zu betrachten. Das ist zwar nützlich, gibt aber keinen Aufschluss über die Verteilung der Latenz. Ein besserer Messwert sind die Leistungsperzentile, z. B. das 50./75./90./99. Perzentil für einen Messwert.
Die Optimierung erfolgt in der Regel in zwei Schritten. Optimieren Sie zuerst für die Latenz im 90. Perzentil. Sehen Sie sich dann das 99. Perzentil an, auch als Tail-Latenz bezeichnet. Das ist der kleine Teil der Anfragen, deren Bearbeitung viel länger dauert.
Serverseitiges Monitoring für detaillierte Ergebnisse
Serverseitiges Profiling wird im Allgemeinen für das Erfassen von Messwerten bevorzugt. Die serverseitige Implementierung ist in der Regel viel einfacher, ermöglicht den Zugriff auf detailliertere Daten und ist weniger anfällig für Störungen durch Verbindungsprobleme.
Browser-Monitoring für End-to-End-Transparenz
Browserprofiling kann zusätzliche Informationen zur Nutzerfreundlichkeit liefern. Sie können sehen, auf welchen Seiten langsame Anfragen auftreten, und diese dann zur weiteren Analyse mit der serverseitigen Überwachung in Beziehung setzen.
Google Analytics bietet sofort einsatzbereite Überwachungsfunktionen für Seitenladezeiten im Bericht zu Seiten-Timings. So erhalten Sie mehrere nützliche Ansichten, um die Nutzerfreundlichkeit Ihrer Website zu analysieren, insbesondere:
- Seitenladezeiten
- Ladezeiten für Weiterleitungen
- Serverantwortzeiten
Monitoring in der Cloud
Es gibt viele Tools, mit denen Sie Leistungsmesswerte für Ihre Anwendung erfassen und überwachen können. Sie können beispielsweise Google Cloud Logging verwenden, um Leistungsmesswerte in Ihrem Google Cloud-Projekt zu protokollieren. Anschließend können Sie in Google Cloud Monitoring Dashboards einrichten, um die protokollierten Messwerte zu überwachen und zu segmentieren.
Im Logging-Leitfaden finden Sie ein Beispiel für das Logging in Google Cloud Logging über einen benutzerdefinierten Interceptor in der Python-Clientbibliothek. Wenn diese Daten in Google Cloud verfügbar sind, können Sie Messwerte auf Grundlage der protokollierten Daten erstellen, um über Google Cloud Monitoring Einblick in Ihre Anwendung zu erhalten. Folgen Sie der Anleitung für benutzerdefinierte logbasierte Messwerte, um Messwerte anhand der an Google Cloud Logging gesendeten Logs zu erstellen.
Alternativ können Sie die Monitoring-Clientbibliotheken verwenden, um Messwerte in Ihrem Code zu definieren und sie getrennt von den Logs direkt an Monitoring zu senden.
Beispiel für logbasierte Messwerte
Angenommen, Sie möchten den Wert is_fault
überwachen, um die Fehlerraten in Ihrer Anwendung besser nachvollziehen zu können. Sie können den Wert is_fault
aus den Logs in einen neuen Zählermesswert, ErrorCount
, extrahieren.
Mit Labels in Cloud Logging können Sie Ihre Messwerte anhand anderer Daten in den Logs in Kategorien gruppieren. Sie können ein Label für das Feld method
konfigurieren, das an Cloud Logging gesendet wird, um zu sehen, wie die Anzahl der Fehler nach Google Ads API-Methode aufgeschlüsselt wird.
Nachdem Sie den Messwert ErrorCount
und das Label Method
konfiguriert haben, können Sie ein neues Diagramm in einem Monitoring-Dashboard erstellen, um ErrorCount
nach Method
gruppiert zu überwachen.
Benachrichtigungen
In Cloud Monitoring und anderen Tools können Sie Benachrichtigungsrichtlinien konfigurieren, die angeben, wann und wie Benachrichtigungen durch Ihre Messwerte ausgelöst werden sollen. Eine Anleitung zum Einrichten von Cloud Monitoring-Benachrichtigungen finden Sie in der Anleitung zu Benachrichtigungen.