Panoramica di Cloud Profiler

Comprendere il rendimento dei sistemi di produzione è notoriamente difficile. Il tentativo di misurare le prestazioni negli ambienti di test di solito non riesce a replicare le pressioni su un sistema di produzione. Il microbenchmarking di parti della tua applicazione a volte è fattibile, 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 vengono consumate risorse come cicli di CPU e memoria mentre un servizio opera nel suo ambiente di lavoro. Tuttavia, la profilazione aggiunge un carico aggiuntivo al sistema di produzione: per essere un modo accettabile per scoprire i pattern di consumo delle risorse, il carico aggiuntivo della profilazione deve essere ridotto.

Cloud Profiler è un profiler statistico a basso overhead che raccoglie continuamente informazioni sull'utilizzo della CPU e sull'allocazione della memoria dalle tue applicazioni di produzione. Attribuisce queste informazioni al codice sorgente che le ha generate, aiutandoti a identificare le parti della tua applicazione che consumano più risorse e a comprendere meglio le caratteristiche di rendimento 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 profilo supportati per lingua:

Tipo di profilo Vai Java Node.js Python
Tempo CPU YY Y
Heap YY Y
Heap allocato Y
Contesa Y
Threads Y
Tempo totale di esecuzione Y YY

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

Configurazioni supportate

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

Ambienti Vai Java Node.js Python
Compute Engine YYYY
Google Kubernetes Engine YYYY
Ambiente flessibile di App Engine YYYY
Ambiente standard di App Engine YYYY
Dataproc Y
Dataflow YY
Al di fuori di Google Cloud YYYY

La seguente tabella riassume i sistemi operativi supportati:

Sistemi operativi Vai Java Node.js Python
Implementazione Linux
glibc della libreria C standard
YY YY
Implementazione Linux
musl della libreria C standard
YY (alpha) YY (alpha)

Impatto sulle prestazioni

Cloud Profiler crea un singolo profilo raccogliendo i dati di profilazione, in genere per 10 secondi, ogni minuto per una singola istanza del servizio configurato in una singola zona Compute Engine. Se, ad esempio, il tuo servizio GKE esegue 10 repliche di un pod, in un periodo di 10 minuti vengono creati circa 10 profili e ogni pod viene profilato circa una volta. Il periodo di profilazione è randomizzato, quindi varia. Per saperne di più, consulta la sezione Raccolta dei profili.

Il sovraccarico della profilazione dell'allocazione di CPU e heap al momento della raccolta dei dati è inferiore al 5%. Ammortizzato nel tempo di esecuzione e su 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

L'agente viene installato sulle macchine virtuali in cui viene eseguita l'applicazione. L'agente in genere viene fornito come libreria che colleghi alla tua 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 di Profiler

Dopo che l'agente ha raccolto alcuni dati di profilazione, puoi utilizzare l'interfaccia di Profiler per vedere in che modo le statistiche sull'utilizzo di CPU e memoria sono correlate alle aree della tua applicazione.

Interfaccia Cloud Profiler

I dati del profilo vengono conservati per 30 giorni, quindi puoi analizzare i dati sul rendimento per periodi fino agli ultimi 30 giorni. I profili possono essere scaricati per l'archiviazione a lungo termine.

Quote e limiti

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

Sicurezza dei dati

Cloud Profiler è un servizio supportato dai Controlli di servizio VPC. Per saperne di più, consulta la documentazione sui Controlli di servizio VPC.

Analisi dei dati

Dopo che Profiler ha raccolto i dati, puoi visualizzarli e analizzarli utilizzando l'interfaccia Profiler.

Nella console Google Cloud , vai alla pagina Profiler:

Vai a Profiler

Puoi trovare questa pagina anche utilizzando la barra di ricerca.