Panoramica di Cloud Profiler
È notoriamente difficile comprendere il rendimento dei sistemi di produzione. Il tentativo di misurare le prestazioni in ambienti di test in genere non riesce a replicare le pressioni su un sistema di produzione. A volte è possibile eseguire 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 vengono consumate risorse come cicli della CPU e memoria quando un servizio opera nel proprio ambiente di lavoro. Tuttavia, la profilazione aggiunge un carico aggiuntivo al sistema di produzione: per essere un modo accettabile per scoprire schemi di consumo delle risorse, il carico aggiuntivo della profilazione deve essere ridotto.
Cloud Profiler è un profiler statistico a basso impatto 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 dell'applicazione che consumano più risorse e a comprendere le caratteristiche di rendimento delle 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 | S | Y | S | |
Heap | S | Y | S | |
Heap allocato | S | |||
Contesa | S | |||
Thread | S | |||
Tempo totale di esecuzione | S | Y | S |
Per informazioni complete sui requisiti delle lingue 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 l'applicazione per acquisire i dati del profilo, includi un agente di profilazione specifico per la lingua. La seguente tabella riassume gli ambienti supportati:
Ambienti | Vai | Java | Node.js | Python |
---|---|---|---|---|
Compute Engine | S | Y | Y | S |
Google Kubernetes Engine | S | Y | Y | S |
Ambiente flessibile di App Engine | S | Y | Y | S |
Ambiente standard di App Engine | S | Y | Y | S |
Dataproc | S | |||
Dataflow | S | S | ||
Al di fuori di Google Cloud | S | Y | Y | S |
La seguente tabella riassume i sistemi operativi supportati:
Sistemi operativi | Vai | Java | Node.js | Python |
---|---|---|---|---|
Implementazione della libreria C standard su Linuxglibc |
S | Y | Y | S |
Implementazione della libreria C standard su Linuxmusl |
S | Y (alfa) | S | Y (alfa) |
Impatto sulle prestazioni
Cloud Profiler crea un singolo profilo raccogliendo i dati di profilazione, solitamente per 10 secondi, ogni 1 minuto per una singola istanza del servizio configurato in una singola zona Compute Engine. Ad esempio, se 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 è casuale, quindi esistono delle variazioni. Per saperne di più, consulta la sezione Raccolta dei profili.
Il sovraccarico della profilazione dell'allocazione della CPU e dell'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 il profiling sempre attivo 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
Devi installare l'agente sulle macchine virtuali su cui viene eseguita la tua applicazione. In genere, l'agente viene fornito come libreria da collegare all'applicazione quando viene eseguita. 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
- Profiling delle applicazioni in esecuzione al di fuori di Google Cloud
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 relative all'utilizzo della CPU e della memoria sono correlate alle aree della tua applicazione.
I dati del profilo vengono conservati per 30 giorni, pertanto puoi analizzare i dati sul rendimento per periodi fino agli ultimi 30 giorni. I profili possono essere scaricati per la memorizzazione a lungo termine.
Quote e limiti
Per informazioni su come visualizzare e gestire le quote di Profiler, consulta Quote e limiti.
Sicurezza dei dati
Cloud Profiler è un servizio supportato dai Controlli di servizio VPC. Per ulteriori informazioni, consulta la documentazione dei Controlli di servizio VPC.