Risolvere i problemi di prestazioni delle istanze di calcolo


Questo documento illustra come diagnosticare e mitigare i problemi di prestazioni relativi a CPU, memoria e archiviazione nelle istanze bare metal e delle macchine virtuali (VM) Compute Engine.

Prima di iniziare

  • Installa Ops Agent per visualizzare le metriche complete sulle prestazioni dell'istanza, ad esempio l'utilizzo della memoria e dello spazio su disco

Visualizzare le metriche sul rendimento

Per visualizzare le metriche sul rendimento delle istanze di calcolo, 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 della observability.

    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 CPU. La percentuale di CPU utilizzata dall'istanza.

      • Utilizzo della memoria. La percentuale di memoria utilizzata dall'istanza, escluse le cache su disco. Per le istanze che utilizzano un sistema operativo Linux, viene esclusa anche la memoria del kernel.

      • Traffico di rete. La frequenza media di byte inviati e ricevuti in intervalli di un minuto.

      • Nuove connessioni con VM/esterne/Google. Il numero stimato di flussi TCP/UDP distinti in un minuto, raggruppati per tipo di peer.

      • Velocità effettiva del disco. Velocità 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, istanze e destinazioni esterne Google, in base a un campione di pacchetti. La metrica viene scalata in modo che la somma corrisponda al traffico di rete inviato totale.

      • Ricevuto da VM/esterno/Google. La frequenza del traffico di rete ricevuto da servizi, istanze e origini esterne di Google, in base a un campione di pacchetti. La metrica viene scalata in modo che la somma corrisponda al trafico di rete ricevuto totale.

      • Totale pacchetti di 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 del firewall.

    • Nella pagina Prestazioni dei dischi:

      • Dimensione I/O media.La dimensione media delle operazioni di I/O di lettura e scrittura sul disco. Gli I/O casuali di piccole dimensioni (da 4 a 16 KiB) sono generalmente limitati dalle IOPS e gli I/O sequenziali o di grandi dimensioni (da 256 KiB a 1 MiB) sono limitati dalla velocità effettiva.

      • Durata media coda: il numero di operazioni di I/O su disco in coda e in esecuzione (chiamata anche profondità di coda) per i primi cinque dispositivi. Per raggiungere i limiti delle prestazioni dei dischi, utilizza una profondità di 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.

      • Media latenza I/O.La latenza media delle operazioni di lettura e scrittura di I/O, aggregate tra le operazioni di tutti i dischi collegati all'istanza, misurata dall'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 dell'I/O.

Informazioni sulle 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 carico di lavoro o il traffico di rete dell'istanza, le prestazioni dell'istanza potrebbero essere interessate.

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 virtuali a quelli fisici fissa ed espongono NUMA al sistema operativo guest.
  • La maggior parte delle VM ottiene 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 condiviso 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 maggiori 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 dei processi 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 costante della CPU o della memoria elevato indica la necessità di aumentare le dimensioni di una VM. Se la VM utilizza costantemente più del 90% della CPU o della memoria, cambia il tipo di macchina della VM con un tipo di macchina 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 la sezione Risoluzione dei problemi di blocco soft delle vCPU.

Prestazioni della rete

Dettagli hardware

Le prestazioni della rete sono interessate 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 dell'istanza, visita la pagina corrispondente alla famiglia di macchine dell'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 di rete in entrata o in uscita della VM, ma puoi configurare alcuni tipi di macchine per una maggiore larghezza di banda. Per ulteriori informazioni, consulta Configurare una VM con una larghezza di banda superiore.

Per comprendere le prestazioni di rete di un'istanza, visualizza le metriche sul rendimento per Totale pacchetti rete, Dimensione media pacchetti, Nuove connessioni con VM/esterne/Google, Inviati a VM/esterne/Google, Ricevuti da VM/esterne/Google e Pacchetti in entrata del firewall rifiutati.

Controlla se Totale pacchetti rete, Dimensione media pacchetti e Nuove connessioni con VM/esterne/Google sono tipici per il tuo carico di lavoro. 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, visita la pagina Network Intelligence Firewall Insights nella console Google Cloud per scoprire di più sulle origini dei pacchetti rifiutati.

Vai alla pagina Firewall Insights

Se ritieni che il tuo traffico venga rifiutato erroneamente dai firewall, prova a eseguire i 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 carico di lavoro per conservare più dati all'interno di una zona o regione per aumentare la latenza e ridurre i costi. Per ulteriori informazioni, consulta i prezzi del trasferimento dati da VM a 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 un criterio di posizionamento compatto per ottenere una latenza di rete ridotta.

Istanze bare metal

A differenza delle istanze VM, in un'istanza Bare Metal, i 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 un rendimento completo della larghezza di banda di rete.

  • Puoi utilizzare il seguente script per disattivare gli stati di sospensione su un'istanza C3 bare metal 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 al riavvio 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. L'IOMMU può influire negativamente sul rendimento della 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 dei dischi permanenti SSD è condiviso da tutti i dischi della VM. Per ulteriori informazioni,consulta Rendimento dello spazio di archiviazione bloccato.
  • Quando Persistent Disk e Hyperdisk competono con il traffico di trasferimento di dati in uscita, il 60% della larghezza di banda massima della rete in uscita viene utilizzato per Persistent Disk e Hyperdisk e il 40% rimanente può essere utilizzato per il trasferimento di dati in uscita sulla rete. Per ulteriori informazioni, consulta Altri fattori che influiscono sul rendimento.
  • Le dimensioni e le prestazioni della profondità di coda I/O dipendono dai carichi di lavoro. Alcuni carichi di lavoro potrebbero non essere sufficientemente grandi da utilizzare i limiti di prestazioni relativi alle dimensioni e alla profondità di coda I/O.
  • Il tipo di macchina di una VM influisce sulle sue 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 Velocità effettiva, Operazioni (IOPS), Dimensioni I/O, Latenza I/O e Lunghezza coda.

La produttività del disco e le IOPS indicano se il carico di lavoro della VM funziona come previsto. Se la velocità effettiva o le IOPS sono inferiori al valore massimo previsto indicato nel diagramma 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 di I/O possono variare da 4 a 16 KiB per i carichi di lavoro che richiedono IOPS elevati e bassa latenza e da 256 KiB a 1 MiB per i carichi di lavoro che comportano dimensioni di scrittura sequenziali o di grandi dimensioni. Dimensioni di 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 consigliata.

La latenza I/O dipende dalla lunghezza della coda e dalle dimensioni I/O. Se la lunghezza della coda o la dimensione I/O di un disco è elevata, anche la latenza sarà elevata.

Se le metriche sul rendimento dello spazio di archiviazione indicano problemi di prestazioni del disco, svolgi una o più delle seguenti operazioni: