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
-
Melden Sie sich bei Ihrem Google-Konto an.
Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- 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:
- Wenn Sie Cloud Shell öffnen möchten, klicken Sie in der Symbolleiste der Google Cloud Console auf Cloud Shell aktivieren:
Nach kurzer Zeit wird in der Google Cloud Console eine Cloud Shell-Sitzung geöffnet:
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:
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 filter_list 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
istruntime.main
von Go. - Der orange Frame
main
ist die Routinemain
des Beispielprogramms. - Der orange Frame
busyloop
ist eine Routine, die ausmain
des Beispielprogramms aufgerufen wird. - Der orange Frame
main.load
ist eine Routine, die ausmain
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
:
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?
- Eine Übersicht über Cloud Profiler finden Sie unter Informationen zu Cloud Profiler.
- Eine Einführung in die Profilerstellung finden Sie unter Konzepte der Profilerstellung.
- Ausführliche Informationen zu Profiler-Features finden Sie unter Cloud Profiler-Oberfläche verwenden.
- Lesen Sie unsere Ressourcen zu DevOps und gehen Sie unser Forschungsprogramm durch.
- Profilerstellung für Go-Code
- Profilerstellung für Java-Code
- Profilerstellung für Node.js-Code
- Profilerstellung für Python-Code
- Profilerstellung für Code außerhalb von Google Cloud