Risoluzione dei problemi di blocco parziale delle vCPU

Questo documento descrive come risolvere i problemi di blocco soft 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 soft potrebbero anche avere un utilizzo della CPU insolitamente elevato o insolito, a seconda della causa esatta del blocco soft.

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 software:

  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"
    

Risolvi i problemi di blocco parziale

Dopo aver identificato che si verifica 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 kernel specifici nell'analisi dello stack che suggeriscono una particolare funzione o operazione coinvolta.
  2. Identifica se il blocco soft si ripete con una certa 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 workload, 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 nel periodo in cui si è verificato il 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 soft lockup, 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 affidabilità, per fornire una funzionalità di failover se una determinata VM subisce un soft lockup prolungato. Per saperne di più, consulta Progettazione di 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 workload con eventi di manutenzione simulati per scoprire le sue prestazioni durante la migrazione live (se abilitata), in particolare durante il test di carico.
  • Se esegui un kernel Linux personalizzato o moduli personalizzati nella VM, testa le nuove modifiche sotto carico prima di eseguirne il deployment nell'ambiente di produzione. Verifica che le modifiche personalizzate non ti impediscano di ricevere assistenza dal fornitore del sistema operativo.
  • Mantieni aggiornato il sistema operativo. Per saperne di più, consulta la documentazione del sistema operativo.