Questo documento illustra come diagnosticare e mitigare i problemi di prestazioni relativi a CPU, memoria e spazio di archiviazione nelle istanze bare metal e delle macchine virtuali (VM) Compute Engine.
Prima di iniziare
- Installa Ops Agent per visualizzare le metriche complete sul rendimento delle istanze, ad esempio l'utilizzo della memoria e dello spazio su disco.
Visualizza le metriche sul rendimento
Per visualizzare le metriche sul rendimento delle istanze di computing, utilizza le metriche di osservabilità di Cloud Monitoring disponibili nella console Google Cloud .
Nella console Google Cloud , vai alla pagina Istanze VM.
Puoi visualizzare le metriche per le singole istanze o per le cinque istanze che consumano la quantità maggiore di una risorsa.
Per visualizzare le metriche per le singole istanze:
Fai clic sul nome dell'istanza per cui vuoi visualizzare le metriche sul rendimento. Viene visualizzata la pagina Dettagli dell'istanza.
Fai clic sulla scheda Osservabilità per aprire la pagina Panoramica dell'osservabilità.
Per visualizzare le metriche relative alle cinque istanze che consumano la quantità maggiore di una risorsa, fai clic sulla scheda Osservabilità nella pagina Istanze VM.
Esplora le metriche sul rendimento dell'istanza. Visualizza le sezioni Panoramica, CPU, Memoria, Rete e Disco per visualizzare le metriche dettagliate su ciascun argomento. Di seguito sono riportate le metriche chiave che indicano il rendimento delle istanze:
Nella pagina Panoramica:
Utilizzo della CPU. La percentuale di CPU utilizzata dall'istanza.
Utilizzo della memoria. La percentuale di memoria utilizzata dall'istanza, escluse le cache del disco. Per le istanze che utilizzano un sistema operativo Linux, viene esclusa anche la memoria del kernel.
Traffico di rete. La frequenza media di invio e ricezione dei byte in intervalli di un minuto.
Nuove connessioni con VM/esterno/Google. Il numero stimato di flussi TCP/UDP distinti in un minuto, raggruppati per tipo di peer.
Throughput del disco. Frequenza media di lettura e scrittura dei byte nei dischi.
IOPS del disco. La frequenza media delle operazioni di lettura e scrittura di I/O sui dischi.
Nella pagina Riepilogo rete:
Inviate a VM/esterno/Google. La frequenza del traffico di rete inviato a servizi Google, istanze e destinazioni esterne, in base a un campione di pacchetti. La metrica viene adeguata in modo che la somma corrisponda al totale del traffico di rete inviato.
Ricevute da VM/esterno/Google. La frequenza del traffico di rete ricevuto da servizi Google, istanze e origini esterne, in base a un campione di pacchetti. La metrica viene adeguata in modo che la somma corrisponda al traffico di rete ricevuto totale.
Totale pacchetti rete. La frequenza totale dei pacchetti inviati e ricevuti in intervalli di un minuto.
Dimensioni medie pacchetto. Dimensioni medie, in byte, dei pacchetti inviati e ricevuti in intervalli di un minuto.
Pacchetti in entrata rifiutati dal firewall. La frequenza dei pacchetti di rete in entrata inviati all'istanza, ma non ricevuti dall'istanza, perché sono stati rifiutati dalle regole firewall.
Nella pagina Prestazioni dischi:
Dimensione media degli I/O: la dimensione media delle operazioni di lettura e scrittura di I/O sul disco. Gli I/O casuali di piccole dimensioni (4-16 KiB) sono generalmente limitati da IOPS e gli I/O sequenziali o di grandi dimensioni (256 KiB-1 MiB) sono limitati in base al throughput.
Durata media della coda: il numero di operazioni di I/O su disco in coda e in esecuzione (chiamata anche profondità della coda) per i primi cinque dispositivi. Per raggiungere i limiti delle prestazioni dei dischi, utilizza una profondità della coda I/O elevata. Persistent Disk e Google Cloud Hyperdisk sono uno spazio di archiviazione in rete e di solito hanno una latenza più elevata rispetto ai dischi fisici o alle unità SSD locali.
Latenza I/O media: la latenza media delle operazioni di lettura e scrittura di I/O, aggregate tra le operazioni di tutti i dischi collegati all'istanza, misurata da Ops Agent. Questo valore include la latenza di elaborazione del sistema operativo e del file system e dipende dalla lunghezza della coda e dalle dimensioni I/O.
Comprendi le metriche sul rendimento
Le prestazioni dell'istanza sono influenzate dall'hardware su cui è in esecuzione, dal workload in esecuzione e dal tipo di macchina dell'istanza. Se l'hardware non è in grado di supportare il workload o il traffico di rete dell'istanza, le prestazioni dell'istanza potrebbero risentirne.
Prestazioni della CPU e della memoria
Dettagli hardware
Le prestazioni della CPU e della memoria sono influenzate dai seguenti vincoli hardware:
- Ogni CPU virtuale (vCPU) viene implementata come un singolo multi-thread hardware su un processore CPU.
- I processori CPU Intel Xeon supportano più thread di app su un singolo core del processore.
- Le VM che utilizzano tipi di macchine C2 hanno una mappatura dei core da virtuali a fisici fissa ed espongono al sistema operativo guest l'architettura delle celle NUMA.
- La maggior parte delle VM riceve la frequenza turbo all-core indicata sulle piattaforme CPU, anche se solo la frequenza di base viene pubblicizzata nell'ambiente guest
- I tipi di macchine con core condivisi utilizzano il cambio di contesto per condividere un core fisico tra vCPU per il multitasking. Offrono inoltre funzionalità di bursting durante le quali l'utilizzo della CPU di una VM può superare il 100%. Per ulteriori informazioni, consulta Tipi di macchine con core condivisi.
Per comprendere le prestazioni della CPU e della memoria di un'istanza, visualizza le metriche sul rendimento per Utilizzo della CPU e Utilizzo della memoria. Inoltre, puoi utilizzare le metriche di processo per visualizzare i processi in esecuzione, attribuire anomalie nel consumo di risorse a un processo specifico o identificare i consumatori di risorse più costosi della tua istanza.
Un utilizzo della CPU o della memoria costantemente elevato indica la necessità di fare lo scale up delle dimensioni di una VM. Se la VM utilizza costantemente più del 90% della CPU o della memoria, modifica il tipo di macchina della VM in uno con più vCPU o memoria.
Un utilizzo della CPU insolitamente elevato o insolitamente basso potrebbe indicare che la VM sta riscontrando un blocco soft della CPU. Per ulteriori informazioni, consulta Risoluzione dei problemi di blocco soft delle vCPU.
Prestazioni di rete
Dettagli hardware
Le prestazioni di rete sono influenzate dai seguenti vincoli hardware:
- Ogni tipo di macchina ha un limite di larghezza di banda in uscita specifico. Per trovare la larghezza di banda in uscita massima per il tipo di macchina della tua istanza, visita la pagina corrispondente alla famiglia di macchine della tua istanza.
- L'aggiunta di interfacce di rete aggiuntive o di indirizzi IP aggiuntivi per interfaccia di rete a una VM non aumenta la larghezza di banda della rete in entrata o in uscita della VM, ma puoi configurare alcuni tipi di macchine per una larghezza di banda più elevata. Per ulteriori informazioni, consulta Configurare una VM con una larghezza di banda più elevata.
Per comprendere le prestazioni di rete di un'istanza, visualizza le metriche sul rendimento per Totale pacchetti rete, Dimensioni medie pacchetto, Nuove connessioni con VM/esterno/Google, Inviate a VM/esterno/Google, Ricevute da VM/esterno/Google e Pacchetti in entrata rifiutati dal firewall.
Controlla se Totale pacchetti rete, Dimensioni medie pacchetto e Nuove connessioni con VM/esterno/Google sono tipici per il tuo workload. Ad esempio, un server web potrebbe avere molte connessioni e piccoli pacchetti, mentre un database potrebbe avere poche connessioni e grandi pacchetti.
Un traffico di rete in uscita costantemente elevato potrebbe indicare la necessità di modificare il tipo di macchina della VM in un tipo di macchina con un limite di larghezza di banda in uscita più elevato.
Se noti un numero elevato di pacchetti in entrata rifiutati dai firewall, consulta la pagina Firewall Insights di Network Intelligence nella consoleGoogle Cloud per saperne di più sulle origini dei pacchetti rifiutati.
Vai alla pagina Firewall Insights
Se ritieni che il tuo traffico venga erroneamente negato dai firewall, puoi creare ed eseguire test di connettività.
Se la tua istanza invia e riceve una grande quantità di traffico da istanze in zone o regioni diverse, ti consigliamo di modificare il workload per conservare più dati all'interno di una zona o regione al fine di aumentare la latenza e ridurre i costi. Per ulteriori informazioni, consulta Prezzi del trasferimento di dati tra VM in Google Cloud. Se la tua istanza invia una grande quantità di traffico ad altre istanze all'interno della stessa zona, valuta la possibilità di utilizzare una policy di posizionamento compatto per ottenere una minore latenza di rete.
Istanze bare metal
A differenza delle istanze VM, in un'istanza bare metal, gli stati di sospensione C6 e C1E non sono disattivati. Ciò può causare l'entrata in stato di sospensione dei core inattivi e può comportare una riduzione delle prestazioni di rete delle istanze bare metal. Questi stati di sospensione possono essere disattivati nel sistema operativo se hai bisogno di prestazioni di larghezza di banda di rete complete.
Puoi utilizzare il seguente script per disattivare gli stati di sospensione su un'istanza bare metal C3 senza dover riavviare l'istanza:
for cpu in {0..191}; do echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state3/disable echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state2/disable done
In alternativa, puoi aggiornare il file di configurazione GRUB per mantenere le modifiche durante i riavvii dell'istanza.
# add intel_idle.max_cstate=1 processor.max_cstate=1 to GRUB_CMDLINE_LINUX sudo vim /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo reboot
Dopo il riavvio, verifica che gli stati di sospensione C6 e C1E siano disattivati:
ls /sys/devices/system/cpu/cpu0/cpuidle/ state0 state1 cat /sys/devices/system/cpu/cpu0/cpuidle/state*/name POLL C1
L'unità di gestione della memoria di input/output (IOMMU) è una funzionalità della CPU
che fornisce la virtualizzazione degli indirizzi per i dispositivi PCI. La IOMMU può influire negativamente
sulle prestazioni di rete se si verificano molte mancate corrispondenze I/O translation lookaside
buffer
(IOTLB).
- È più probabile che si verifichino mancate corrispondenze quando vengono utilizzate pagine piccole.
- Per ottenere le prestazioni ottimali, è consigliabile utilizzare pagine di grandi dimensioni (da 2 MB a 1 GB).
Prestazioni di archiviazione
Dettagli hardware
Lo spazio di archiviazione è soggetto ai seguenti vincoli hardware:
- Le dimensioni totali di tutti i dischi permanenti combinate con il numero di vCPU determinano le prestazioni totali dello spazio di archiviazione. Se esistono diversi tipi di dischi permanenti collegati a una VM, il limite di prestazioni del disco permanente SSD è condiviso da tutti i dischi della VM. Per ulteriori informazioni,consulta Prestazioni dell'archiviazione a blocchi.
- Quando Persistent Disk e Hyperdisk competono con il traffico di trasferimento di dati in uscita, il 60% della larghezza di banda di rete massima in uscita viene utilizzato per Persistent Disk e Hyperdisk e il 40% rimanente può essere utilizzato per il trasferimento di dati di rete in uscita. Per ulteriori informazioni, consulta Altri fattori che influiscono sulle prestazioni.
- Le prestazioni relative a dimensioni I/O e profondità della coda dipendono dai workload. Alcuni workload potrebbero non essere sufficientemente grandi da utilizzare i limiti di prestazioni relativi alle dimensioni I/O e alla profondità della coda.
- Il tipo di macchina di una VM influisce sulle prestazioni di archiviazione. Per ulteriori informazioni, consulta Tipo di macchina e numero di vCPU.
Per comprendere le prestazioni dello spazio di archiviazione di una VM, visualizza le metriche sul rendimento relative a Throughput, Operazioni (IOPS), Dimensioni I/O, Latenza I/O e Lunghezza coda.
Throughput e IOPS del disco indicano se il workload della VM funziona come previsto. Se throughput o IOPS sono inferiori al valore massimo previsto indicato nel grafico dei tipi di dischi, potrebbero verificarsi problemi di prestazioni relativi alle dimensioni I/O, alla lunghezza della coda o alla latenza I/O.
Le dimensioni I/O possono essere tra 4-16 KiB per i workload che richiedono IOPS elevati e bassa latenza e tra 256 KiB-1 MiB per i workload che comportano dimensioni di scrittura sequenziali o di grandi dimensioni. Dimensioni I/O al di fuori di questi intervalli indicano problemi di prestazioni del disco.
La lunghezza della coda, nota anche come profondità della coda, è un fattore di throughput e IOPS. Quando un disco ha un buon rendimento, la lunghezza della coda dovrebbe essere approssimativamente uguale a quella consigliata per raggiungere un determinato livello di throughput o IOPS, elencato nel grafico Profondità della coda I/O suggerita.
La latenza I/O dipende dalla lunghezza della coda e dalle dimensioni I/O. Se la lunghezza della coda o le dimensioni I/O di un disco sono elevate, anche la latenza sarà elevata.
Se le metriche sul rendimento dello spazio di archiviazione indicano problemi di prestazioni del disco, esegui una o più delle seguenti azioni:
- Consulta Ottimizzazione delle prestazioni di Persistent Disk o Ottimizzazione delle prestazioni di HyperDisk e implementa le best practice suggerite per migliorare le prestazioni.
- Aggiungi un volume Hyperdisk o aggiungi un nuovo Persistent Disk alla tua istanza per aumentare i limiti di prestazioni del disco. Le prestazioni del disco si basano sulla quantità totale di spazio di archiviazione collegato a un'istanza. Questa opzione è la meno invasiva in quanto non richiede lo smontaggio del file system, il riavvio o l'arresto dell'istanza.
- Modifica l'Hyperdisk per aumentare i limiti di IOPS e throughput per disco. Per Persistent Disk, devi aumentare le dimensioni del disco per aumentare i limiti di IOPS e throughput per disco. I dischi non hanno capacità prenotate e inutilizzabili, quindi puoi utilizzare il disco completo senza un peggioramento delle prestazioni.
- Cambia il tipo di disco in uno che offra prestazioni più elevate.