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 app di continuare a fornire risultati prevedibili delle prestazioni 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 usato per la scalabilità del 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 di Compute Engine implementato come un singolo multithread hardware. Per impostazione predefinita, due vCPU condividono un core CPU fisico. Questa architettura è chiamata multi-threading simultaneo (SMT).

Per carichi di lavoro altamente paralleli o con rappresentazione in virgola mobile di calcolo (come transcodifica, simulazioni Monte Carlo, sequenze genetiche e la definizione del modello di rischio finanziario), puoi migliorare il rendimento disattivando SMT. Per ulteriori informazioni, vedi Imposta il numero di thread per core.

Utilizza GPU

Per carichi di lavoro come il machine learning e la visualizzazione, puoi aggiungere unità di elaborazione grafica (GPU) 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 ad alta intensità di grafica, come la visualizzazione 3D, puoi usare NVIDIA RTX workstation virtuali. Dopo aver eseguito il deployment dei carichi di lavoro, monitora l'utilizzo della GPU e rivedi le opzioni per ottimizzare le prestazioni della GPU.

Utilizza 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 ti consiglia 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 la seguente documentazione:

Scegliere lo spazio di archiviazione appropriato

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

Google Kubernetes Engine

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

Scalabilità automatica delle risorse

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 app di continuare a fornire prestazioni prevedibili all'aumento del carico. 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) Pod in esecuzione sui nodi. Quando utilizzi la scalabilità automatica, può esserci un compromesso tra prestazioni e costi.

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 il 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. Ma per i carichi di lavoro in cui sia i core virtuali sono legati al calcolo e 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.

Utilizza 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 le informazioni, vedi Esecuzione di 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 migliora le prestazioni della rete e migliora la visibilità e la latenza di rete tra il bilanciatore del carico e i pod. Per questo motivo vantaggi, il bilanciamento del carico nativo del container è la soluzione consigliata per bilanciare In entrata.

Definisci 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 pool di nodi a zona singola, e assicurarti che i nodi siano fisicamente vicini tra loro definendo una criterio di posizionamento compatto. Per ulteriori informazioni, vedi Definisci il posizionamento compatto per i nodi GKE.

Servizi di serverless computing

Questa sezione fornisce indicazioni per aiutarti a ottimizzare il rendimento del tuo serverless in Google Cloud: Cloud Run e Funzioni di Cloud Run. Questi servizi offrono funzionalità di scalabilità automatica, che gestisce la scalabilità in modo automatico. Utilizzando questi modelli puoi ridurre lo sforzo di scalabilità di microservizi e funzioni, e di concentrarsi 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: