Misurare le prestazioni delle app
Questo documento mostra come configurare e utilizzare Cloud Profiler. Tu scaricare un programma Go di esempio, eseguirlo con la profilazione abilitata e quindi utilizzare l'interfaccia di Profiler per esplorare i dati acquisiti.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the required API.
- Per aprire Cloud Shell, nella barra degli strumenti della console Google Cloud, fai clic su
Attiva Cloud Shell:
Dopo qualche istante, si apre una sessione di Cloud Shell all'interno Console Google Cloud:
Profilare un programma
Il programma di esempio, main.go
, è nel repository golang-samples
il giorno
GitHub. Per riceverlo, recupera il pacchetto di esempi di Go:
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Il recupero del pacco richiede alcuni istanti.
Profila il codice
Vai alla directory del codice campione per Profiler nel recupero pacchetto:
cd golang-samples/profiler/profiler_quickstart
Il programma main.go
crea un carico di lavoro che richiede molta CPU per fornire dati
il profiler. Avvia il programma e lascialo in esecuzione:
go run main.go
Questo programma è progettato per caricare la CPU durante l'esecuzione. È configurato per utilizzare Profiler, che raccoglie dati di profilazione dal programma mentre viene eseguita e la salva periodicamente.
Qualche secondo dopo l'avvio del programma, viene visualizzato il messaggio
profiler has started
. Entro circa un minuto vengono visualizzati altri due messaggi:
successfully created profile CPU
start uploading profile
Questi messaggi indicano che è stato creato e caricato un profilo nel tuo progetto Cloud Storage. Il programma continua a emettere gli ultimi due messaggi, circa una volta al minuto, per tutto il tempo di esecuzione.
Se ricevi un messaggio di errore di autorizzazione negata dopo aver avviato il servizio: vedi Errori di configurazione del progetto Google Cloud.
Interfaccia Profiler
Pochi istanti dopo l'avvio dell'applicazione, Profiler visualizza i dati iniziali del profilo. L'interfaccia offre una serie di controlli e un grafico a fiamme per l'esplorazione dei dati di profilazione:
Oltre ai controlli dell'orario, ci sono opzioni che ti consentono di scegliere di dati del profilo da utilizzare. Quando profili più applicazioni, utilizza Servizio per selezionare l'origine dei dati sottoposti a profilazione. Tipo di profilo ti consente di scegliere il tipo dei dati del profilo da visualizzare. Nome zona e Versione consentono di limitare per visualizzare i dati provenienti dalle zone o versioni di Compute Engine per l'applicazione. Peso ti consente di selezionare i profili acquisiti durante la stagione di picco. e il consumo di risorse.
Per perfezionare la modalità di visualizzazione dei profili selezionati per l'analisi nel grafico a fiamme,
aggiungi i filtri. Nello screenshot precedente, la barra dei filtri
Programmi di filter_list
un filtro. Questa opzione di filtro è Metric
e il valore del filtro è CPU time
.
Esplorazione dei dati
Il grafico a fiamme mostra gli stack di chiamate del programma. Il grafico a fiamme rappresenta ogni funzione con un frame. La larghezza del frame rappresenta la proporzione del consumo di risorse da questa funzione. Il frame superiore rappresenta l'intero programma. Questo frame mostra sempre il 100% del consumo di risorse. Questo riquadro elenca anche il numero di profili medi in questo grafico.
Il programma di esempio non ha un insieme complesso di stack di chiamate, nello screenshot precedente, vedi 5 frame:
- La cornice grigia rappresenta l'intero eseguibile, che rappresenta il 100% del le risorse utilizzate.
- Il frame
main
verde è la scritta Goruntime.main
. - Il frame
main
arancione è la routinemain
del programma di esempio. - Il frame
busyloop
arancione è una routine chiamata dal valoremain
del campione. - Il frame
main.load
arancione è una routine chiamata dal valoremain
del campione.
Il selettore di filtri ti consente, ad esempio, di filtrare le funzioni che corrispondono
un nome. Ad esempio, se esiste una libreria standard di funzioni di utilità,
puoi rimuoverle dal grafico. Puoi anche rimuovere gli stack di chiamate
hanno origine da un determinato metodo o semplificano il grafico in altri modi.
L'applicazione main.go
è semplice, quindi non c'è molto da
filtrare.
Anche per un'applicazione semplice, i filtri ti consentono di nascondere fotogrammi non interessanti
in modo da poter vedere più chiaramente i fotogrammi interessanti. Ad esempio, nel
screenshot di profilazione del codice campione, la cornice grigia è leggermente
più grande del primo frame sottostante main
. Perché? C'è qualcos'altro
e ciò non è immediatamente evidente perché lo stack di chiamate main
consuma una percentuale così schiacciante delle risorse?
Per visualizzare cosa succede al di fuori della routine main
dell'applicazione:
aggiungi un filtro che nasconda lo stack di chiamate della routine main
.
Solo lo 0,227% del consumo di risorse si verifica al di fuori di main
:
Per ulteriori informazioni sui filtri e su altri modi per esplorare la profilazione dati, consulta Selezionare i profili da analizzare.
Passaggi successivi
Per informazioni generali sulla profilazione, consulta i seguenti documenti:
- Panoramica di Cloud Profiler
- Concetti di profilazione
- Leggi le nostre risorse su DevOps ed esplora Programma di ricerca di DORA.
- Profilazione delle applicazioni Go
- Profilazione delle applicazioni Java
- Profilazione delle applicazioni Node.js
- Profilazione delle applicazioni Python
- Profilazione delle applicazioni in esecuzione al di fuori di Google Cloud