App-Leistung messen

In diesem Dokument erfahren Sie, wie Sie Cloud Profiler einrichten und verwenden. Sie laden mit der Cloud Shell ein Go-Beispielprogramm herunter, führen es mit aktivierter Profilerstellung aus und verwenden dann die Profiler-Oberfläche, um die erfassten Daten zu analysieren.

Wenn Sie Anwendungen profilerstellen möchten, die außerhalb von Google Cloud ausgeführt werden, müssen Sie einige Konfigurationsschritte ausführen, die in diesem Dokument nicht behandelt werden. Weitere Informationen zu diesen Schritten finden Sie unter Profilerstellung für Code außerhalb der Google Cloud Platform.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. Enable the required API.

    Enable the API

  5. Wenn Sie Cloud Shell öffnen möchten, klicken Sie in der Symbolleiste der Google Cloud Console auf Cloud Shell aktivieren:

    Aktivieren Sie Cloud Shell.

    Nach kurzer Zeit wird in der Google Cloud Console eine Cloud Shell-Sitzung geöffnet:

    Cloud Shell-Sitzung

Programm zur Profilerstellung abrufen

Das Beispielprogramm main.go befindet sich im Repository golang-samples auf GitHub. Führen Sie dazu in Cloud Shell den folgenden Befehl aus, um das Paket mit den Go-Beispielen abzurufen:

git clone https://github.com/GoogleCloudPlatform/golang-samples.git

Das Abrufen des Pakets dauert einen Moment.

Codeprofil erstellen

Wechseln Sie in Cloud Shell im abgerufenen Paket zum Verzeichnis mit dem Beispielcode für Profiler:

cd golang-samples/profiler/profiler_quickstart

Das Programm main.go erstellt eine CPU-intensive Arbeitslast, um dem Profiler Daten zur Verfügung zu stellen. Führen Sie in Cloud Shell den folgenden Befehl aus, um das Programm zu starten und laufen zu lassen:

 go run main.go

Dieses Programm ist so konzipiert, dass es während der Ausführung die CPU auslastet. In seiner Konfiguration ist die Verwendung von Profiler vorgesehen, sodass Profildaten aus dem laufenden Programm erfasst und in regelmäßigen Abständen gespeichert werden.

Wenige Sekunden nach dem Start des Programms wird die Meldung profiler has started angezeigt. Nach etwa einer Minute werden zwei weitere Meldungen angezeigt:

 successfully created profile CPU
 start uploading profile

Diese Meldungen zeigen an, dass ein Profil erstellt und in Ihr Cloud Storage-Projekt hochgeladen wurde. Solange das Programm läuft, gibt es die letzten beiden Nachrichten weiterhin aus (etwa einmal pro Minute).

Wenn Sie nach dem Start des Dienstes die Fehlermeldung erhalten, dass die Berechtigung verweigert wurde, finden Sie entsprechende Informationen unter Fehler bei der Google Cloud-Projektkonfiguration.

Stackdriver Profiler-Oberfläche

Kurz nachdem Sie die Anwendung gestartet haben, zeigt Profiler die ersten Profildaten an. Die Oberfläche bietet eine Reihe von Steuerelementen und ein Flame-Diagramm zum Analysieren der Daten für die Profilerstellung:

Profiler-Oberfläche mit dem Beispielcode

Zusätzlich zu den Zeiteinstellungen gibt es Optionen, mit denen Sie den zu verwendenden Satz von Profildaten auswählen können. Wenn Sie die Profilerstellung für mehrere Anwendungen ausführen, verwenden Sie Dienst, um die Quelle der Profildaten auszuwählen. Profiltyp ermöglicht Ihnen, die Art der darzustellenden Profildaten auszuwählen. Mit Zonenname und Version können Sie die Anzeige auf Daten aus bestimmten Compute Engine-Zonen oder Versionen der Anwendung beschränken. Mit Gewichtung können Sie Profile auswählen, die während des Spitzenverbrauchs an Ressourcen erfasst wurden.

Wenn Sie die Darstellung der analysierten Profile im Flame-Diagramm anpassen möchten, fügen Sie Filter hinzu. Im Screenshot oben wird in der Filterleiste ein einziger Filter angezeigt. Diese Filteroption ist Metric und der Filterwert ist CPU time.

Daten analysieren

Im Flame-Diagramm werden die Aufrufstacks des Programms angezeigt. Im Flame-Diagramm wird jede Funktion mit einem Frame dargestellt. Die Breite des Frames gibt den Anteil des Ressourcenverbrauchs für diese Funktion an. Der oberste Frame steht für das gesamte Programm. Dieser Frame zeigt immer 100 % des Ressourcenverbrauchs an. In diesem Frame wird auch angegeben, wie viele Profile in dieser Grafik gemittelt werden.

Der Satz von Aufrufstacks im Beispielprogramm ist unkompliziert. Im vorherigen Screenshot sehen Sie fünf Frames:

  • Der graue Frame stellt die gesamte ausführbare Datei dar, die 100 % des Ressourcenverbrauchs ausmacht.
  • Der grüne Frame main ist runtime.main von Go.
  • Der orange Frame main ist die Routine main des Beispielprogramms.
  • Der orange Frame busyloop ist eine Routine, die aus main des Beispielprogramms aufgerufen wird.
  • Der orange Frame main.load ist eine Routine, die aus main des Beispielprogramms aufgerufen wird.

Mit der Filterauswahl können Sie beispielsweise Funktionen herausfiltern, die einem bestimmten Namen entsprechen. Wenn Sie etwa eine Standardbibliothek mit Dienstprogrammfunktionen haben, lassen sich diese aus der Grafik entfernen. Sie können auch Aufrufstacks entfernen, die von einer bestimmten Methode ausgehen, oder die Grafik auf andere Weise vereinfachen. Da die Anwendung main.go sehr einfach strukturiert ist, lassen sich nicht viele Funktionen herausfiltern.

Selbst bei einer einfachen Anwendung können Sie mit Filtern Frames ausblenden, die für Sie nicht von Interesse sind. Die relevanten Frames lassen sich somit besser sehen. Im Screenshot mit der Profilerstellung für den Beispielcode ist der graue Frame etwas größer als der erste Frame namens main direkt darunter. Warum? Gibt es hier noch etwas, das nicht sofort erkennbar ist, weil der Aufrufstack main so einen überwältigenden Anteil der Ressourcen beansprucht? Wenn Sie sehen möchten, was außerhalb der main-Routine der Anwendung geschieht, fügen Sie einen Filter hinzu, mit dem der Aufrufstack der main-Routine ausgeblendet wird. Nur 0,227 % des Ressourcenverbrauchs fallen außerhalb von main:

Stacks im Beispielprogramm ausblenden

Weitere Informationen zum Filtern und zu anderen Möglichkeiten, die Sie zum Analysieren der Profildaten haben, finden Sie unter Profile für die Analyse auswählen.

Nächste Schritte

Allgemeine Informationen zum Profiling finden Sie in den folgenden Dokumenten:

Weitere Informationen zum Ausführen des Cloud Profiler-Agents finden Sie unter: