Kurzanleitung: Profiler kennenlernen

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

Hinweis

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Klicken Sie im Navigationsbereich der Google Cloud Console auf Profiler oder verwenden Sie die folgende Schaltfläche, um die Cloud Profiler API für Ihr Projekt zu aktivieren:

    Profiler öffnen

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

    Screenshot: Cloud Shell aktivieren

    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. Rufen Sie dazu das Paket mit den Go-Beispielen ab:

go get -u github.com/GoogleCloudPlatform/golang-samples/profiler/...

Das Abrufen des Pakets dauert einen Moment.

Codeprofil erstellen

Wechseln Sie im abgerufenen Paket in das Verzeichnis mit dem Beispielcode für Profiler:

cd ~/gopath/src/github.com/GoogleCloudPlatform/golang-samples/profiler/profiler_quickstart

Das Programm main.go erstellt eine CPU-intensive Arbeitslast, um dem Profiler Daten zur Verfügung zu stellen. Starten Sie das Programm und lassen Sie es laufen:

 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.

Nachdem Sie das Programm gestartet haben, sehen Sie nach einigen Sekunden die Meldung profiler has started. 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 Starten des Dienstes eine Fehlermeldung über eine verweigerte Berechtigung erhalten, finden Sie mögliche Ursachen unter Warum wird mir die Fehlermeldung "Berechtigung verweigert" angezeigt?.

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

Unter den Steuerelementen für die Zeit befinden sich 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 Service (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

Unterhalb der Auswahlsteuerelemente sind die Aufrufstacks des Programms in einem Flame-Diagramm zu sehen. 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

Unter Stackdriver Profiler-Oberfläche verwenden finden Sie viele weitere Informationen zum Filtern und zu anderen Möglichkeiten, die Sie zum Analysieren der Profildaten haben.

Weitere Informationen

Benötigen Sie weitere allgemeine Informationen?

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