Mit dem Flame-Diagramm interagieren

Cloud Profiler zeigt Profildaten mithilfe von Flame-Diagrammen an. Eine konzeptionelle Einführung finden Sie unter Flame-Diagramme.

Das Flame-Diagramm setzt sich aus Frames zusammen. Jeder Frame stellt eine Funktion im Dienst dar:

  • Die Breite eines Frames entspricht seinem Anteil am analysierten Messwert. Der oberste Frame stellt beispielsweise den gesamten Dienst dar und macht damit 100 % des analysierten Messwerts aus. Daher wird dieser Frame in voller Breite angezeigt.

  • Die Farbe eines Frames entspricht standardmäßig dem Paket der Funktion, sofern möglich. Wenn keine Paketinformationen verfügbar sind, wie beispielsweise bei Node.js, werden die Namen der Quelldateien zur Farbdarstellung der Funktionsblöcke verwendet. In einem Aufrufstack bedeutet eine Änderung der Blockfarbe einen Übergang von einem Paket zu einem anderen. Sie können die Farben der Frames auch ändern. Weitere Informationen finden Sie unter Farbmodus.

Das Flame-Diagramm zeigt einen oder mehrere Aufrufstacks mit den Werten, die über einen Satz von Profilen gemittelt wurden:

  • Jedes einzelne Profil stellt Daten dar, die einmal pro Minute von einer einzelnen Instanz des konfigurierten Dienstes in einer einzelnen Compute Engine-Zone erfasst wurden. Der Erfassungszeitraum für ein Profil variiert je nach Profiltyp. Weitere Informationen finden Sie unter Profilerfassung.
  • Es werden maximal 250 Profile gemittelt. Wenn mehr als 250 Profile verfügbar sind, werden davon 250 nach dem Zufallsprinzip als Stichprobe ausgewählt.
  • Der oberste Frame oder "Stammframe" eines Flame-Diagramms stellt den gesamten Dienst dar. Die zweite Zeile im Diagramm unter dem "Stammframe" enthält einen weiteren Frame oder einen Satz von Frames. Jeder dieser farbcodierten Frames ist ein Aufruf auf oberster Ebene, der vom Dienst ausging. Unter jedem dieser farbigen Funktionsframes befindet sich ein weiterer Satz von Funktionsframes, von denen jeder für einen gewissen Teil der Ressource des darüber liegenden Frames verantwortlich ist. Die Hierarchie der Funktionsframes im Diagramm stellt die Aufrufsequenz dar und die Breite eines Frames repräsentiert den Anteil der entsprechenden Funktion oder Methode am Ressourcenverbrauch.

Beispielsweise zeigt das Profiler-Diagramm des beanspruchten Heaps für den docdemo-Dienst, dass der Dienst verschiedene Frames auf oberster Ebene aufruft. Einer davon ist die Funktion main der Go-Laufzeit. Die Breite dieser Frames auf oberster Ebene zeigt, dass der größte Teil des Heaps vom Aufrufstack beansprucht wird, an dem die Funktion main der Go-Laufzeit sowie die anwendungsspezifischen Funktionen main, allocOnce und allocImpl beteiligt sind:

Profiler-Diagramm für den Heap-Verbrauch

Im Stamm-Frame werden Informationen zum Messwertanteil angezeigt.

Den Mauszeiger auf einen Frame bewegen

Wenn Sie den Mauszeiger über einen Frame im Flame-Diagramm halten, wird die Kurzinfo des Frames mit zusätzlichen Informationen zum Frame geöffnet:

  • Funktionsname
  • Dateiname der Funktion
  • Absolute Nutzung und prozentuale Nutzung

In den Informationen zum Messwertanteil zeigt das Präfix total (gesamt) an, dass der Messwert und der Prozentsatz für eine Funktion und deren untergeordnete Elemente gelten. Im Gegensatz dazu weist das Präfix self (von der Funktion selbst) darauf hin, dass sich der Messwert und der Prozentsatz nur auf die Funktion beziehen und der Anteil ihrer untergeordneten Elemente ausgeschlossen ist.

Das Dialogfeld enthält auch Schaltflächen:

  • Fokus: Richtet das Diagramm auf die Funktion des aktuellen Frames aus.
  • Stacks anzeigen: Fügt einen Filter hinzu, um nur die Stacks mit der Funktion dieses Frames anzuzeigen.
  • Verlauf anzeigen: Öffnet die Verlaufsansicht für die Funktion des Frames.

In diesem Beispiel sehen Sie an der Kurzinfo, dass sich die Funktion runtime.main in der Datei /usr/local/go/src/runtime/proc.go befindet. Die Informationen zum Messwertanteil zeigen, dass die Funktion runtime.main und ihre untergeordneten Elemente 54,73 MiB des Arbeitsspeichers beanspruchen, was ungefähr 98 % des gesamten vom Programm belegten Arbeitsspeichers ausmacht.

Messwertanteil für runtime.main

Frame auswählen

Wenn Sie einen Frame auswählen, wird das Flame-Diagramm neu gezeichnet. Der ausgewählte Frame wird dabei in voller Breite angezeigt. Die Farben weiter oben im Aufrufstack werden gedeckt angezeigt. Die Auswahl eines Frames hat keine Auswirkungen auf die Einstellungen. Das Diagramm wird lediglich anders dargestellt. Wenn Sie zur ursprünglichen Ansicht zurückkehren möchten, wählen Sie den Stammframe (ganz oben) aus.

Im folgenden Beispiel befindet sich der Zeiger auf einem winzigen Frame und der Aufrufstack ist nicht gut sichtbar. Aus der Kurzinfo geht hervor, dass es sich um die Frame-Funktion (*huffmanBitWriter).write handelt:

Ein winziger Frame im Flame-Diagramm

Nachdem Sie den Frame ausgewählt haben, wird das Diagramm neu gezeichnet, um den Aufrufstack hervorzuheben:

Der winzige Frame in erweiterter Darstellung

Nächste Schritte