Ottimizza le prestazioni di computing

Last reviewed 2023-08-05 UTC

Questo documento nel framework dell'architettura Google Cloud fornisce suggerimenti per aiutarti a ottimizzare le prestazioni di Compute Engine, Google Kubernetes Engine (GKE) e delle risorse serverless.

Compute Engine

Questa sezione fornisce indicazioni per ottimizzare le prestazioni delle risorse di Compute Engine.

Scalabilità automatica delle risorse

I gruppi di istanze gestite consentono di scalare in modo efficiente le app stateless di cui è stato eseguito il deployment su VM di Compute Engine. La scalabilità automatica consente alle app di continuare a offrire prestazioni prevedibili quando il carico aumenta. In un gruppo di istanze gestite, viene avviato un gruppo di VM di Compute Engine in base a un modello da te definito. Nel modello, configurerai un criterio di scalabilità automatica che specifica uno o più indicatori che il gestore della scalabilità automatica utilizza per scalare il gruppo. Gli indicatori di scalabilità automatica possono essere basati sulla pianificazione, ad esempio ora di inizio o durata, oppure su metriche target come l'utilizzo medio della CPU. Per ulteriori informazioni, consulta Scalabilità automatica dei gruppi di istanze.

Disattiva SMT

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

Per i carichi di lavoro altamente paralleli o che eseguono calcoli in virgola mobile (come transcodifica, simulazioni Monte Carlo, analisi di sequenza genetica e modellazione del rischio finanziario), puoi migliorare le prestazioni disattivando SMT. Per maggiori informazioni, consulta Impostare il numero di thread per core.

Utilizza GPU

Per carichi di lavoro quali machine learning e visualizzazione, puoi aggiungere GPU (Graphics Processing Unit) alle tue VM. Compute Engine fornisce GPU NVIDIA in modalità passthrough, in modo che le VM abbiano il controllo diretto sulle GPU e sulla memoria associata. Per carichi di lavoro che richiedono molta 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 ed esamina le opzioni per ottimizzare le prestazioni della GPU.

Utilizza tipi di macchine ottimizzate per il calcolo

Carichi di lavoro come giochi, transcodifica multimediale e computing ad alte prestazioni (HPC) richiedono costantemente prestazioni 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 si basano su un'architettura che utilizza funzionalità come l'accesso alla memoria non uniforme (NUMA) per prestazioni ottimali e affidabili.

I carichi di lavoro HPC a stretto accoppiamento hanno un insieme unico di requisiti per raggiungere la massima efficienza in termini di prestazioni. Per ulteriori informazioni, consulta la seguente documentazione:

Scegli lo spazio di archiviazione appropriato

Google Cloud offre una vasta gamma di opzioni di archiviazione per le VM di Compute Engine: dischi permanenti, dischi a stato solido (SSD) locali, 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 dello spazio di archiviazione.

Google Kubernetes Engine

Questa sezione fornisce indicazioni per aiutarti a ottimizzare le prestazioni delle tue risorse Google Kubernetes Engine (GKE).

Scalabilità automatica delle risorse

Puoi ridimensionare automaticamente i pool di nodi in un cluster GKE in modo che corrispondano al carico attuale utilizzando la funzionalità di gestore della scalabilità automatica dei cluster. La scalabilità automatica consente alle app di continuare a offrire prestazioni prevedibili 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, è possibile trovare un compromesso tra prestazioni e costi. Consulta le best practice per configurare in modo efficiente la scalabilità automatica dei cluster.

Usa VM C2D

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

Disattiva SMT

Il multi-threading (SMT) simultaneo può aumentare significativamente la velocità effettiva delle applicazioni per attività di calcolo generiche e per carichi di lavoro che richiedono un I/O elevato. Tuttavia, per i carichi di lavoro in cui entrambi i core virtuali sono vincolati al calcolo, la SMT può causare prestazioni incoerenti. Per ottenere prestazioni migliori e più prevedibili, puoi disabilitare SMT per i nodi GKE impostando il numero di vCPU per core su 1.

Utilizza GPU

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

Utilizza il bilanciamento del carico nativo del container

Il bilanciamento del carico nativo del container consente ai bilanciatori del carico di distribuire il traffico direttamente e in modo uniforme ai pod. Questo approccio offre prestazioni di rete migliori e visibilità sulla latenza di rete tra il bilanciatore del carico e i pod. Per via di questi vantaggi, 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 a stretto accoppiamento richiedono una bassa latenza di rete 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 l'uno all'altro definendo un criterio di posizionamento compatto. Per ulteriori informazioni, consulta Definire un posizionamento compatto per i nodi GKE.

Servizi di computing serverless

Questa sezione fornisce indicazioni per aiutarti a ottimizzare le prestazioni dei tuoi servizi di computing serverless in Google Cloud: Cloud Run e Cloud Functions. Questi servizi offrono funzionalità di scalabilità automatica, in cui l'infrastruttura sottostante gestisce la scalabilità in modo automatico. Utilizzando questi servizi serverless, puoi ridurre gli sforzi di scalabilità dei microservizi e le funzioni e concentrarti sull'ottimizzazione delle prestazioni a livello di applicazione.

Per saperne di più, consulta la seguente documentazione:

Passaggi successivi

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