Risoluzione dei problemi di prestazioni delle istanze di computing


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 .

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. 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:

    1. Fai clic sul nome dell'istanza per cui vuoi visualizzare le metriche sul rendimento. Viene visualizzata la pagina Dettagli dell'istanza.

    2. 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.

  3. 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:

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: