Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
Guida rapida: misurare le prestazioni delle app utilizzando Cloud Profiler

Misurare le prestazioni dell'app utilizzando Cloud Profiler

Questo documento mostra come configurare e utilizzare Cloud Profiler. Scarica un programma Go di esempio, eseguilo con la profilazione abilitata, quindi utilizza l'interfaccia di Profiler per esplorare i dati acquisiti.

Prima di iniziare

  1. 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.
  2. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  4. Per attivare l'API Cloud Profiler per il tuo progetto, nel riquadro di navigazione di Google Cloud Console, fai clic su Profiler oppure utilizza il pulsante seguente:

    Vai a Profiler

  5. Per aprire Cloud Shell, nella barra degli strumenti di Google Cloud Console, fai clic su Attiva Cloud Shell:

    Attiva Cloud Shell.

    Dopo qualche istante, si apre una sessione di Cloud Shell in Google Cloud Console:

    Sessione Cloud Shell.

Richiedi un programma al profilo

Il programma di esempio, main.go, si trova nel repository golang-samples su GitHub. Per ottenerlo, recupera il pacchetto di esempi di Go:

git clone https://github.com/GoogleCloudPlatform/golang-samples.git

Il recupero del pacco richiede qualche istante.

Profilo

Vai alla directory del codice di esempio per Profiler nel pacchetto recuperato:

cd golang-samples/profiler/profiler_quickstart

Il programma main.go crea un carico di lavoro che utilizza la CPU per fornire dati al profiler. Avvia il programma e lascialo in esecuzione:

 go run main.go

Questo programma è progettato per caricare la CPU mentre è in esecuzione. È configurato per utilizzare Profiler, che raccoglie i dati di profilazione dal programma mentre è in esecuzione e li salva periodicamente.

Qualche secondo dopo l'avvio del programma viene visualizzato il messaggio profiler has started. In circa un minuto vengono visualizzati altri due messaggi:

 successfully created profile CPU
 start uploading profile

Questi messaggi indicano che il profilo è stato creato e caricato nel 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 l'avvio del servizio, consulta Errori con la configurazione del progetto Google Cloud.

Interfaccia di Profiler

Pochi istanti dopo aver avviato l'applicazione, Profiler mostra i dati iniziali. L'interfaccia offre una serie di controlli e un grafico a fiamme per esplorare i dati di profilazione:

Interfaccia di profiler con il codice di esempio.

Oltre ai controlli temporali, sono disponibili opzioni che ti consentono di scegliere l'insieme di dati del profilo da utilizzare. Quando profili più applicazioni, utilizzi Servizio per selezionare l'origine dei dati profilati. Tipo di profilo ti consente di scegliere il tipo di dati di profilo da visualizzare. Nome zona e Versione consentono di limitare la visualizzazione ai dati delle zone Compute Engine o delle versioni dell'applicazione. Peso consente di selezionare i profili acquisiti durante il picco di utilizzo delle risorse.

Aggiungi filtri per perfezionare il modo in cui vengono visualizzati i profili selezionati per l'analisi. Nello screenshot precedente, la barra dei filtri mostra 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 chiamata del programma. Il grafico a fiamme rappresenta ogni funzione con un frame. La larghezza del frame rappresenta la proporzione del consumo di risorse per tale funzione. Il frame superiore rappresenta l'intero programma. Questo frame mostra sempre il 100% del consumo di risorse. In questo frame viene visualizzato anche il numero medio di profili in questo grafico.

Il programma di esempio non ha un insieme complicato di stack di chiamate; nello screenshot precedente vengono visualizzati 5 frame:

  • Il frame grigio rappresenta l'intero eseguibile, che rappresenta il 100% delle risorse utilizzate.
  • Il frame verde main è il campo runtime.main (Go).
  • Il frame main arancione è la routine main del programma di esempio.
  • Il frame busyloop arancione è una routine chiamata main da campione.
  • Il frame main.load arancione è una routine chiamata main da campione.

Il selettore di filtri ti consente, ad esempio, di filtrare le funzioni che corrispondono a un nome. Ad esempio, se esiste una libreria standard di funzioni di utilità, puoi rimuoverle dal grafico. Puoi anche rimuovere gli stack di chiamate che hanno origine in un determinato metodo o semplificare il grafico in altri modi. L'applicazione main.go è semplice, quindi non c'è molto da filtrare.

Anche per un'applicazione semplice, i filtri consentono di nascondere i frame non interessanti in modo da poter visualizzare più chiaramente i frame interessanti. Ad esempio, nello screenshot di profilazione del codice campione, il frame grigio è leggermente più grande del primo frame main sottostante. Perché? C'è qualcos'altro che sta accadendo immediatamente perché lo stack di chiamate main consuma una percentuale enorme 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 delle risorse si verifica al di fuori di main:

Nascondere gli stack nel programma di esempio.

Per ulteriori informazioni sui filtri e su altri modi per esplorare i dati di profilazione, consulta la sezione Utilizzare l'interfaccia di Profiler.

Passaggi successivi

Hai bisogno di informazioni più generiche?

Per informazioni sull'esecuzione dell'agente Cloud Profiler, consulta: