Panoramica di Cloud Profiler
Comprendere le prestazioni dei sistemi di produzione è notoriamente difficile. Il tentativo di misurare le prestazioni negli ambienti di test di solito non riesce a rispondere alle pressioni di un sistema di produzione. Il microbenchmarking di parti dell'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 i cicli della CPU e la memoria durante il funzionamento di un servizio nel suo ambiente di lavoro. Tuttavia, la profilazione aggiunge un ulteriore carico al sistema di produzione: per essere un modo accettabile per individuare 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 applicazioni di produzione. che attribuisce queste informazioni al codice sorgente che le ha generate, aiutandoti a identificare le parti dell'applicazione che consumano più risorse e illuminando in altro modo le caratteristiche prestazionali delle applicazioni.
Tipi di profilazione disponibili
Cloud Profiler supporta diversi tipi di profilazione in base alla lingua 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 | Y | Y | Y | |
Heap | Y | Y | Y | |
Heap allocato | Y | |||
Contesa | Y | |||
Thread | Y | |||
Tempo totale di esecuzione | Y | Y | Y |
Per informazioni complete sui requisiti linguistici e sulle eventuali restrizioni, vedi la pagina di istruzioni della lingua. Per ulteriori informazioni 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 | Go | Java | Node.js | Python |
---|---|---|---|---|
Compute Engine | Y | Y | Y | Y |
Google Kubernetes Engine | Y | Y | Y | Y |
Ambiente flessibile di App Engine | Y | Y | Y | Y |
Ambiente standard di App Engine | Y | Y | Y | Y |
Dataproc | Y | |||
Dataflow | Y | Y | ||
All'esterno di Google Cloud | Y | Y | Y | Y |
La seguente tabella riassume i sistemi operativi supportati:
Sistemi operativi | Go | Java | Node.js | Python |
---|---|---|---|---|
Implementazioneglibc della libreria C standard in Linux |
Y | Y | Y | Y |
Implementazionemusl della libreria C standard in Linux |
Y | S (alpha) | Y | S (alpha) |
Impatto sulle prestazioni
Cloud Profiler crea un singolo profilo raccogliendo dati di profilazione, di solito per 10 secondi e ogni minuto per una singola istanza del servizio configurato in una singola zona Compute Engine. Se, ad esempio, 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 circa una volta. Il periodo di profilazione è casuale, quindi c'è qualche variazione. Per ulteriori informazioni, consulta Raccolta profilo.
L'overhead della profilazione di CPU e allocazione heap al momento della raccolta dei dati è inferiore al 5%. Ammortizzato nel tempo di esecuzione e su più repliche di un servizio, l'overhead è solitamente 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
Puoi installare l'agente sulle macchine virtuali in cui viene eseguita la tua applicazione. In genere l'agente è fornito come una libreria che colleghi 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:- Profilazione delle applicazioni Go
- Profilazione delle applicazioni Java
- Profilazione delle applicazioni Node.js
- Profilazione delle applicazioni Python
- Profilazione delle applicazioni in esecuzione all'esterno di Google Cloud
Interfaccia Profiler
Dopo che l'agente ha raccolto alcuni dati di profilazione, puoi utilizzare l'interfaccia di Profiler per vedere la correlazione tra le statistiche sull'utilizzo di CPU e memoria e le aree dell'applicazione.
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 su come visualizzare e gestire le quote di Profiler, consulta Quote e limiti.
Protezione dei dati
Cloud Profiler è un servizio supportato dai Controlli di servizio VPC. Per ulteriori informazioni, consulta la documentazione sui controlli di servizio VPC.