Panoramica di Cloud Profiler

È notoriamente difficile comprendere le prestazioni dei sistemi di produzione. Il tentativo di misurare le prestazioni negli ambienti di test di solito non riesce a replicare le pressioni su un sistema di produzione. A volte è possibile eseguire il microbenchmarking di parti della tua applicazione, ma in genere non riesce a replicare il carico di lavoro e il comportamento di un sistema di produzione.

La profilazione continua dei sistemi di produzione è un modo efficace per scoprire dove risorse come cicli della CPU e memoria vengono utilizzate come servizio nel suo ambiente di lavoro. Tuttavia, la profilazione aggiunge un ulteriore carico al sistema di produzione: per essere un modo accettabile per rilevare i pattern di consumo delle risorse, il carico aggiuntivo di profilazione deve essere ridotto.

Cloud Profiler è un profilatore statistico e con un overhead ridotto che raccoglie continuamente le informazioni sull'utilizzo della CPU e sull'allocazione della memoria delle tue applicazioni di produzione. Attribuisce queste informazioni al codice sorgente che lo ha generato, aiutandoti a identificare le parti della tua applicazione che stanno consumando la maggior parte delle risorse e ad illuminare le caratteristiche di prestazioni delle tue applicazioni.

Tipi di profilazione disponibili

Cloud Profiler supporta diversi tipi di profilazione in base al linguaggio in cui è scritto un programma. La seguente tabella riassume i tipi di profili supportati per lingua:

Tipo di profilo Go Java Node.js Python
Tempo CPU AY A
Heap AY A
Heap allocato A
Contesa A
Thread A
Tempo totale di esecuzione A YA

Per informazioni complete sui requisiti linguistici e le eventuali limitazioni, consulta la pagina di istruzioni della lingua. Per ulteriori informazioni su questi tipi di profili, consulta la pagina Concetti di profilazione.

Configurazioni supportate

Quando strumenti la tua applicazione per acquisire i dati del profilo, includi un agente di profilazione specifico per lingua. La tabella riportata di seguito riassume gli ambienti supportati:

Ambienti Go Java Node.js Python
Compute Engine AYYA
Google Kubernetes Engine AYYA
Ambiente flessibile di App Engine AYYA
Ambiente standard di App Engine AYYA
Dataproc A
Dataflow AA
Fuori da Google Cloud AYYA

La seguente tabella riassume i sistemi operativi supportati:

Sistemi operativi Go Java Node.js Python
Implementazione
glibc di Linux della libreria C standard
AY YA
Implementazione
musl di Linux della libreria C standard
ASì (alpha) ASì (alpha)

Impatto sulle prestazioni

Cloud Profiler crea un singolo profilo raccogliendo i dati di profilazione, di solito per 10 secondi, ogni minuto per una singola istanza del servizio configurato in una singola zona di Compute Engine. Ad esempio, se il servizio GKE esegue 10 repliche di un pod, in un periodo di 10 minuti vengono creati circa 10 profili e ogni pod viene profilato approssimativamente una volta. Il periodo di profilazione è casuale, quindi c'è una variazione. Per ulteriori informazioni, consulta Raccolta di profili.

L'overhead della profilazione della CPU e dell'allocazione heap al momento della raccolta dei dati è inferiore al 5%. Amortizzato nel tempo di esecuzione e in più repliche di un servizio, l'overhead è in genere inferiore allo 0,5%, il che lo rende un'opzione conveniente per la profilazione sempre attiva nei sistemi di produzione.

Componenti

Cloud Profiler è costituito dall'agente di profilazione, che raccoglie i dati, e da un'interfaccia della console su Google Cloud, che consente di visualizzare e analizzare i dati raccolti dall'agente.

Agente di profilazione

Installa l'agente sulle macchine virtuali in cui viene eseguita la tua applicazione. In genere l'agente è una libreria che puoi collegare all'applicazione quando la esegui. L'agente raccoglie i dati di profilazione durante l'esecuzione dell'app.

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

Interfaccia Profiler

Dopo che l'agente ha raccolto alcuni dati di profilazione, puoi utilizzare l'interfaccia di Profiler per visualizzare la correlazione tra le statistiche relative all'utilizzo di CPU e memoria con le aree dell'applicazione.

Interfaccia di Cloud Profiler

I dati del profilo vengono conservati per 30 giorni, in modo che tu possa analizzarli per i periodi fino agli ultimi 30 giorni. I profili possono essere scaricati per archiviarli a lungo termine.

Quote e limiti

Per informazioni sulla visualizzazione e sulla gestione delle quote di Profiler, consulta Quote e limiti.

Protezione dei dati

Cloud Profiler è un servizio di Controlli di servizio VPC supportato. Per ulteriori informazioni, consulta la documentazione di Controlli di servizio VPC.