Interagire con il grafico a fiamme
Cloud Profiler mostra i dati di profilazione utilizzando i grafici a fiamma. Per un'introduzione concettuale, consulta Flame graph.
Il grafico a fiamme è composto da frame. Ogni frame rappresenta una funzione nel servizio:
La larghezza di un frame corrisponde al suo consumo della metrica analizzata. Il frame superiore, ad esempio, rappresenta l'intero servizio e consuma il 100% della metrica analizzata. Pertanto, questo frame viene visualizzato a larghezza intera.
Per impostazione predefinita, il colore del frame corrisponde, se possibile, al pacchetto della funzione. Se le informazioni sul pacchetto non sono disponibili, come in Node.js, i nomi dei file di origine vengono utilizzati per colorare i blocchi di funzioni. In uno stack di chiamate, un cambiamento nel colore del blocco indica una transizione da un pacchetto all'altro. Puoi cambiare la modalità di colorazione dei frame. Per ulteriori informazioni, vedi Modalità a colori.
Il grafico a forma di fiamma mostra uno o più stack di chiamate con i valori medi su un insieme di profili:
- Ogni singolo profilo rappresenta i dati raccolti una volta al minuto da una singola istanza del servizio configurato in una singola zona Compute Engine. Il periodo di raccolta per un profilo varia in base al tipo di profilo. Per ulteriori informazioni, consulta la sezione Raccolta dei profili.
- Viene calcolata la media di un massimo di 250 profili. Se sono disponibili più di 250 profili, ne vengono selezionati 250 in modo casuale come set di esempio.
- Il frame superiore, o "root", in un grafico a fiamma rappresenta l'intero servizio. Sotto il frame "root", è presente un altro frame o un insieme di frame che costituiscono la seconda riga del grafico. Ciascuno di questi frame codificati per colore è una chiamata di primo livello effettuata dal servizio. Sotto ogni frame della funzione colorato è presente un altro insieme di frame della funzione, ognuno responsabile di una parte della risorsa del frame soprastante. La gerarchia dei frame delle funzioni nel grafico rappresenta la sequenza di chiamate e la larghezza di un frame rappresenta il contributo della funzione o del metodo al consumo di risorse.
Ad esempio, il grafico del profiler dell'heap consumato per il servizio docdemo-service
mostra che il servizio chiama diversi frame di primo livello, uno
di questi è la funzione main
del runtime Go. La larghezza di questi frame di primo livello indica che la maggior parte dell'heap viene consumata dallo stack di chiamate che coinvolge main
, main
, allocOnce
e allocImpl
del runtime Go:
Il frame principale mostra le informazioni sul consumo delle metriche.
Passare il mouse sopra un frame
Quando passi il cursore del mouse sopra un frame nel grafico a forma di fiamma, si apre una descrizione comando del frame che mostra ulteriori informazioni sul frame:
- Nome funzione
- Nome file della funzione
- Utilizzo assoluto e utilizzo in percentuale
Nelle informazioni sul consumo delle metriche, il prefisso totale indica che il valore metrico e la percentuale si riferiscono a una funzione e ai relativi elementi secondari. Al contrario, il prefisso self indica il valore della metrica e la percentuale per la funzione con il consumo dei relativi elementi secondari escluso.
La finestra di dialogo include anche i pulsanti:
- Metti a fuoco: concentra il grafico sulla funzione del frame corrente.
- Mostra frame: aggiunge un filtro per visualizzare solo i frame che includono la funzione di questo frame.
- Mostra cronologia: apre la visualizzazione della cronologia per la funzione del frame.
In questo esempio, la descrizione comando mostra che la funzione runtime.main
si trova nel file /usr/local/go/src/runtime/proc.go
. Le informazioni sul consumo metrico mostrano che runtime.main
e i relativi elementi secondari consumano 54,73 MiB di memoria, ovvero circa il 98% della memoria totale consumata dal programma:
Selezionare un frame
Quando selezioni un frame, il grafico a forma di fiamma viene ridisegnato con il frame visualizzato in tutta la sua larghezza e i colori più in alto nello stack chiamate vengono disattivati. La selezione di un frame non modifica le impostazioni, ma solo il modo in cui viene visualizzato il grafico. Per ripristinare la visualizzazione originale, seleziona il frame principale (in alto).
Nell'esempio seguente, il cursore è su un riquadro minuscolo ed è difficile visualizzare lo stack di chiamate. La descrizione comando
identifica (*huffmanBitWriter).write
come funzione frame:
Dopo aver selezionato il frame, il grafico viene ridisegnato, rendendo più visibile la pila di chiamate:
Passaggi successivi
- Filtra il grafico a fiamme.
- Concentra il grafico a fiamme su una funzione.
- Visualizza le tendenze storiche.
- Confronta i profili.