Risolvere i problemi di prestazioni delle istanze di calcolo


Questo documento mostra come diagnosticare e ridurre i rischi di CPU, memoria e spazio di archiviazione sulle macchine virtuali (VM) Compute Engine e bare metal.

Prima di iniziare

  • Installa Ops Agent per visualizzare le metriche complete relative alle 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 di cui vuoi visualizzare le metriche sulle prestazioni . Viene visualizzata la pagina Dettagli dell'istanza.

    2. Fai clic sulla scheda Osservabilità per aprire la Panoramica di 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 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 i dischi permanenti.

      • IOPS del disco. La frequenza media delle operazioni di lettura e scrittura di I/O sui dischi.

    • Nella pagina Riepilogo di rete:

      • Inviato a VM/esterno/Google. La frequenza della frequenza di traffico di rete inviata a Servizi Google, istanze e destinazioni esterne, in base a un campione di pacchetti. La metrica viene scalata in modo che la somma corrisponda al totale inviato traffico di rete.

      • 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 traffico di rete totale ricevuto.

      • Totali 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 della rete in entrata di pacchetti inviati all'istanza, ma non ricevuti dall'istanza, perché sono negate da regole 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 da IOPS e sequenziali o di grandi dimensioni (da 256 KiB a 1 MiB), limitati dalla velocità effettiva.

      • Lunghezza media coda.Il numero di I/O del disco in coda e in esecuzione operazioni, chiamata anche profondità della 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 Hyperdisk di Google Cloud 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'agente Ops. 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.

Comprendere 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 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 di CPU e memoria sono influenzate dai seguenti vincoli hardware:

  • Ogni CPU virtuale (vCPU) viene implementata come un singolo thread multi-hardware su un processore CPU.
  • Intel Xeon Processori CPU supportano più thread di app su un singolo processore principale.
  • Le VM che utilizzano tipi di macchine C2 hanno una mappatura dei core virtuali a quelli fisici fissa ed espongono l'architettura delle celle NUMA al sistema operativo guest.
  • La maggior parte delle VM ottiene la frequenza turbo all-core elencata su piattaforme CPU, anche se solo la frequenza di base viene pubblicizzata sull'ambiente ospite
  • I tipi di macchina 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 maggiori informazioni le informazioni, vedi Tipi di macchina 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 costantemente elevato di CPU o memoria indica la necessità di fare lo scale up di una VM. Se la VM utilizza costantemente più del 90% della sua CPU o memoria, modificare il tipo di macchina della VM a un tipo di macchina con più vCPU o memoria.

Prestazioni della rete

Dettagli hardware

Le prestazioni della rete sono influenzate dai seguenti vincoli hardware:

  • Ogni tipo di macchina ha un limite di larghezza di banda in uscita specifico. Per trovare il la larghezza di banda massima in uscita per il tipo di macchina dell'istanza visita la pagina corrispondente famiglia di macchine dell'istanza.
  • Aggiunta di altre interfacce di rete o altri indirizzi IP per interfaccia di rete a una VM non aumenta il traffico in entrata o in uscita della VM larghezza di banda della rete, puoi configurare alcuni tipi di macchina per ottenere una larghezza di banda superiore. 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 Totali pacchetti di rete, Dimensioni medie pacchetto e Le nuove connessioni con VM/esterne/Google sono tipiche per il tuo carico di lavoro. Ad esempio, un server web potrebbe rilevare molte connessioni e pacchetti di piccole dimensioni, mentre un database potrebbe rilevare e 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 arrivo negati dai firewall, visita la la pagina Network Intelligence Firewall Insights nella Console Google Cloud per saperne di più sulle origini dei pacchetti negati.

Vai alla pagina Firewall Insights

Se ritieni che il tuo traffico venga rifiutato erroneamente dai firewall, prova a eseguire i test di connettività.

Se l'istanza invia e riceve una quantità elevata di traffico dalle istanze in in zone o regioni diverse, valuta la possibilità di modificare il carico di lavoro per conservare una quantità maggiore di 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 l'istanza invia una grande quantità di traffico ad altre istanze all'interno del stessa zona, considera criterio di posizionamento compatto per ottenere una bassa latenza di rete.

Istanze bare metal

A differenza delle istanze VM, in un'istanza bare metal, Stati di sospensione C6 e C1E non sono disattivate. 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 in modo che le modifiche ai riavvii delle istanze.

    # 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'IOMMU (Input-output Memory Management Unit) è 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).

  • Quando si utilizzano pagine piccole, è più probabile che si verifichino errori.
  • 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 è interessato dai 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 ci sono diversi tipi di dischi permanenti collegati a una VM, i dischi permanenti SSD Il limite delle prestazioni del disco è condiviso da tutti i dischi della VM. Per maggiori informazioni le informazioni,vedi Archiviazione a blocchi del rendimento.
  • Quando disco permanente e Hyperdisk competono con i dati in uscita trasferire il traffico, il 60% della larghezza di banda massima in uscita viene utilizzato per Persistent Disk e Hyperdisk e il restante Il 40% può essere utilizzato per il trasferimento dei dati di rete in uscita. Per ulteriori informazioni, consulta Altri fattori che influiscono sul rendimento.
  • Le dimensioni di I/O e le prestazioni di profondità della coda dipendono dai carichi di lavoro. Alcune carichi di lavoro potrebbero non essere abbastanza grandi da poter utilizzare dimensioni complete di I/O e profondità della coda limiti delle prestazioni.
  • Il tipo di macchina di una VM influisce sulle prestazioni dell'archiviazione. Per maggiori informazioni le informazioni, vedi Macchina e conteggio di vCPU.

Per comprendere le prestazioni di archiviazione di una VM, visualizza le metriche delle prestazioni per la velocità effettiva, Operazioni (IOPS), Dimensioni I/O, Latenza I/O e Lunghezza coda.

Il throughput 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.

È possibile che le dimensioni di I/O siano comprese tra 4 e 16 KiB per i carichi di lavoro che richiedono IOPS elevate e bassa latenza e 256 KiB-1 MiB per carichi di lavoro che implicano dimensioni di scrittura sequenziali o di grandi dimensioni. Le dimensioni di I/O non rientrano in questi intervalli indicano problemi di prestazioni del disco.

La lunghezza della coda, nota anche come profondità della coda, è un fattore della velocità effettiva e del numero di IOPS. Quando un disco funziona bene, la lunghezza della coda deve essere all'incirca uguale alla lunghezza della coda consigliata per raggiungere un determinato livello di velocità effettiva o IOPS, elencato nella Profondità della coda I/O consigliata grafico.

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, svolgi una o più delle seguenti operazioni: