Risoluzione dei problemi di blocco parziale delle vCPU


Questo documento descrive come risolvere i problemi di soft lockup delle vCPU. Un soft lockup si verifica quando la vCPU di un'istanza di macchina virtuale (VM) non è in grado di eseguire una nuova attività per più di 20 secondi. La maggior parte dei blocchi software è causata da bug nel software dell'applicazione.

I soft lockup possono causare la mancata risposta delle VM per brevi periodi di tempo, interrompere l'accesso SSH alle VM e attivare timeout o failover delle applicazioni. Le VM che riscontrano un blocco parziale potrebbero anche avere un utilizzo della CPU insolitamente alto o insolitamente basso, a seconda della causa esatta del blocco parziale.

Identificare i blocchi parziali

Per identificare se la tua VM sta riscontrando un soft lockup, esegui una delle seguenti operazioni:

Esempio di analisi dello stack di blocco parziale

watchdog: BUG: soft lockup - CPU#3 stuck for 22s!

Per rilevare futuri blocchi soft, puoi:

  1. Abilita il logging dell'output della porta seriale.

  2. Crea un criterio di avviso basato su log per il seguente log:

    resource.type="gce_instance" log_id("serialconsole.googleapis.com/serial_port_1_output") textPayload=~"watchdog.*lockup"
    

Risolvere i problemi di blocco parziale

Dopo aver identificato che si sta verificando un blocco temporaneo, prova i seguenti passaggi per la risoluzione dei problemi:

  1. Controlla il sito del fornitore del sistema operativo per verificare la presenza di errori noti nella tua versione del sistema operativo. A volte potresti trovare riferimenti a moduli del kernel specifici nelloanalisi dello stacke che suggeriscono una particolare funzione o operazione coinvolta.
  2. Identifica se il blocco soft si ripete con una determinata frequenza, ad esempio in concomitanza con un carico elevato o determinate attività. Se i soft lockup sono correlati a un carico elevato, potrebbe essere necessario riconfigurare il carico di lavoro, ad esempio utilizzando una VM più grande o suddividendo il carico su più VM.
  3. Controlla se i soft lockup sono correlati a modifiche all'ambiente di runtime, ad esempio nuove implementazioni di software o aggiornamenti delle immagini del sistema operativo.
  4. Valuta se si sono verificati eventi di manutenzione intorno al momento del soft lockup esaminando gli audit log per gli audit log degli eventi di sistema.

Se i passaggi per la risoluzione dei problemi precedenti non hanno risolto il problema, invia una richiesta di assistenza e includi tutte le informazioni che hai raccolto durante la risoluzione dei problemi.

Best practice per evitare i soft lockup

Per evitare che le tue VM subiscano blocchi temporanei, ti consigliamo di implementare le seguenti best practice:

  • Assicurati di aver configurato i componenti ridondanti appropriati per il tuo sistema, come i cluster ad alta disponibilità, per fornire una funzionalità di failover se una determinata VM subisce un soft lockup prolungato. Per ulteriori informazioni, vedi Progettare sistemi resilienti.
  • Per i carichi di lavoro ad alta intensità di calcolo, valuta la possibilità di utilizzare le famiglie di macchine ottimizzate per il calcolo.
  • Testa il tuo carico di lavoro con eventi di manutenzione simulati per scoprire come funziona durante la migrazione live (se abilitata), in particolare durante il test di carico.
  • Se esegui un kernel Linux personalizzato o moduli personalizzati nella tua VM, testa le nuove modifiche sotto carico prima di eseguirne il deployment nell'ambiente di produzione. Conferma che le modifiche personalizzate non ti impediscono di ricevere assistenza dal fornitore del sistema operativo.
  • Mantieni aggiornato il sistema operativo. Per saperne di più, consulta Dettagli del sistema operativo.