Ottimizzare il rendimento dell'elaborazione

Last reviewed 2023-08-05 UTC

Questo documento nel Framework dell'architettura Google Cloud fornisce consigli per aiutarti a ottimizzare il rendimento Compute Engine, Google Kubernetes Engine (GKE) e risorse serverless.

Compute Engine

Questa sezione fornisce indicazioni per aiutarti a ottimizzare il rendimento del tuo Compute Engine Google Cloud.

Risorse a scalabilità automatica

Gruppi di istanze gestite ti consentono di scalare le app stateless di cui hai eseguito il deployment nelle VM di Compute Engine. in modo efficiente. La scalabilità automatica consente alle tue app di continuare a offrire prestazioni prevedibili quando il carico aumenta. In un gruppo di istanze gestite, un gruppo di Compute Engine Le VM vengono avviate in base a un modello da te definito. Nella configurazione del gruppo di istanze, configuri un criterio di scalabilità automatica che specifica uno o più indicatori utilizzati dal gestore della scalabilità per scalare il gruppo. Gli indicatori di scalabilità automatica possono essere basate su pianificazione, come ora di inizio o durata, oppure basate su metriche target come di utilizzo medio della CPU. Per ulteriori informazioni, consulta Gruppi di istanze a scalabilità automatica.

Disabilita SMT

Ogni CPU virtuale (vCPU) allocata a una VM Compute Engine viene implementata come un singolo multithread hardware. Per impostazione predefinita, due vCPU condividono un core della CPU fisica. Questa architettura è chiamata multi-threading simultaneo (SMT).

Per i carichi di lavoro altamente paralleli o che eseguono calcoli con virgola mobile (come transcodifica, simulazioni di Monte Carlo, analisi di sequenze genetiche e modellazione del rischio finanziario), puoi migliorare le prestazioni disattivando la tecnologia SMT. Per ulteriori informazioni, vedi Imposta il numero di thread per core.

Utilizza GPU

Per carichi di lavoro come machine learning e visualizzazione, puoi aggiungere GPU (Graphics Processing Unit) alle tue VM. Compute Engine fornisce GPU NVIDIA in modalità passthrough che le VM abbiano il controllo diretto sulle GPU e sulla memoria associata. Per i carichi di lavoro ad alta intensità di grafica, come la visualizzazione 3D, puoi utilizzare le workstation virtuali NVIDIA RTX. Dopo aver eseguito il deployment dei carichi di lavoro, monitora l'utilizzo della GPU e rivedi le opzioni per ottimizzare le prestazioni della GPU.

Utilizzare i tipi di macchine ottimizzate per il calcolo

Carichi di lavoro come videogiochi, transcodifica multimediale e computing ad alte prestazioni (HPC) richiedono prestazioni sempre elevate per core CPU. Google consiglia di utilizzare tipi di macchine ottimizzate per il calcolo per le VM che eseguono questi carichi di lavoro. Le VM ottimizzate per il calcolo sono basate su una che utilizza funzionalità come accesso non uniforme alla memoria (NUMA) per prestazioni ottimali e affidabili.

I carichi di lavoro HPC a stretto accoppiamento hanno un insieme unico di requisiti per raggiungere di massima efficienza in termini di prestazioni. Per ulteriori informazioni, consulta File system paralleli per carichi di lavoro HPC.

Scegli lo spazio di archiviazione appropriato

Google Cloud offre un'ampia gamma opzioni di archiviazione per le VM di Compute Engine: dischi permanenti, unità a stato solido (SSD) locale i dischi permanenti, Filestore e Cloud Storage. Per suggerimenti di progettazione e best practice per ottimizzare le prestazioni di ciascuna di queste opzioni di archiviazione, consulta Ottimizzare le prestazioni di archiviazione.

Google Kubernetes Engine

Questa sezione fornisce indicazioni per aiutarti a ottimizzare il rendimento del tuo Google Kubernetes Engine (GKE) Google Cloud.

Risorse a scalabilità automatica

Puoi ridimensionare automaticamente i pool di nodi in un cluster GKE in modo che corrisponda al carico attuale utilizzando gestore della scalabilità automatica dei cluster funzionalità. La scalabilità automatica consente alle tue app di continuare a offrire un rendimento prevedibile quando il carico aumenta. Il gestore della scalabilità automatica dei cluster ridimensiona automaticamente i pool di nodi in base alle richieste di risorse (anziché all'utilizzo effettivo delle risorse) dei pod in esecuzione sui nodi. Quando utilizzi la scalabilità automatica, può esserci un compromesso tra prestazioni e costi. Consulta le best practice per configurare la scalabilità automatica del cluster in modo efficiente.

Utilizza VM C2D

Puoi migliorare le prestazioni dei carichi di lavoro containerizzati ad alta intensità di calcolo utilizzando tipi di macchine C2D. Puoi aggiungere nodi C2D ai tuoi cluster GKE scegliendo un'opzione di tipo di macchina C2D nei pool di nodi.

Disabilita SMT

Multi-threading simultaneo (SMT) può aumentare significativamente la velocità effettiva dell'applicazione per attività di calcolo generiche e per carichi di lavoro che richiedono un elevato I/O. Tuttavia, per i carichi di lavoro in cui entrambi i core virtuali sono vincolati dal calcolo, la tecnologia SMT può causare prestazioni incoerenti. Per ottenere prestazioni migliori e più prevedibili, puoi disabilita SMT per i tuoi nodi GKE impostando il numero di vCPU per core a 1.

Utilizzare le GPU

Per carichi di lavoro ad alta intensità di calcolo come il riconoscimento delle immagini e la transcodifica video, puoi accelerare le prestazioni creando pool di nodi che utilizzano GPU. Per ulteriori informazioni, consulta la sezione Eseguire le GPU.

Utilizza il bilanciamento del carico nativo del container

Bilanciamento del carico nativo del container consente ai bilanciatori del carico di distribuire il traffico direttamente e in modo uniforme tra i pod. Questo approccio offre migliori prestazioni di rete e una maggiore visibilità della latenza di rete tra il bilanciatore del carico e i pod. Per questi motivi, il bilanciamento del carico nativo del container è la soluzione consigliata per il bilanciamento del carico tramite Ingress.

Definire un criterio di posizionamento compatto

I carichi di lavoro batch ad alto accoppiamento richiedono una latenza di rete bassa tra i nodi nel pool di nodi GKE. ​​Puoi eseguire il deployment di questi carichi di lavoro in pool di nodi a zona singola, e assicurarti che i nodi siano fisicamente vicini tra loro definendo un criterio di posizionamento compatto. Per ulteriori informazioni, vedi Definisci il posizionamento compatto per i nodi GKE.

Servizi di calcolo serverless

Questa sezione fornisce indicazioni per aiutarti a ottimizzare le prestazioni dei servizi di calcolo serverless in Google Cloud: Cloud Run e funzioni Cloud Run. Questi servizi forniscono funzionalità di scalabilità automatica, in cui l'infrastruttura di base gestisce automaticamente la scalabilità. Utilizzando questi modelli puoi ridurre lo sforzo di scalabilità di microservizi e funzioni, e a ottimizzare le prestazioni a livello di applicazione.

Per ulteriori informazioni, consulta la seguente documentazione:

Passaggi successivi

Esamina le best practice per ottimizzare le prestazioni delle risorse di archiviazione, networking, database e analisi: