Questo documento descrive come risolvere i problemi di blocco soft delle vCPU. Un blocco soft avviene quando la vCPU di un'istanza di una macchina virtuale (VM) non è in grado di eseguire una nuova attività per più di 20 secondi. La maggior parte dei blocchi soft è causata da bug nel software dell'applicazione.
I blocchi soft possono causare la mancata risposta delle VM per brevi periodi di tempo, interrompere l'accesso SSH alle VM e attivare i timeout o il failover delle applicazioni. Le VM che stanno riscontrando un blocco soft potrebbero anche avere un utilizzo della CPU insolitamente elevato o insolitamente basso, a seconda della causa esatta del blocco soft.
Identificare i blocchi parziali
Per identificare se la VM sta riscontrando un blocco soft, esegui una delle seguenti operazioni:
- Se in precedenza hai attivato il logging dell'output della porta seriale per la tua VM, esamina l'output della porta seriale per una analisi dello stack del blocco soft.
- Controlla i log del sistema operativo (
/var/log/messages
) della VM per verificare la presenza di una traccia di stack di blocco soft.
Esempio di analisi dello stack di blocco parziale
watchdog: BUG: soft lockup - CPU#3 stuck for 22s!
Per rilevare futuri blocchi soft, puoi:
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
Una volta identificato un blocco soft, prova a svolgere i seguenti passaggi per la risoluzione dei problemi:
- Controlla il sito del fornitore del sistema operativo per verificare la presenza di errori noti relativi alla versione del sistema operativo. A volte nella analisi dello stack potresti trovare riferimenti a moduli del kernel specifici che suggeriscono una determinata funzione o operazione coinvolta.
- Identifica se il blocco soft si ripete con una certa frequenza, ad esempio se coincide con un carico elevato o con determinate attività. Se i blocchi soft 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.
- Controlla se i blocchi soft sono correlati a eventuali modifiche all'ambiente di runtime, ad esempio nuovi implementazioni di software o aggiornamenti delle immagini del sistema operativo.
- Valuta se sono stati registrati eventi di manutenzione intorno al momento del blocco soft, esaminando gli audit log per gli audit log degli eventi di sistema.
Se i passaggi per la risoluzione dei problemi che seguono non risolvono il problema, invia una richiesta di assistenza e includi tutte le informazioni raccolte durante la risoluzione dei problemi.
Best practice per evitare blocchi soft
Per evitare che le VM si blocchino in modo soft, ti consigliamo di implementare le seguenti best practice:
- Assicurati di avere configurato componenti ridondanti appropriati per il tuo sistema, ad esempio cluster ad alta disponibilità, per fornire una funzionalità di failover se una determinata VM presenta un blocco soft prolungato. Per ulteriori informazioni, consulta Progettare sistemi resilienti.
- Per i carichi di lavoro ad alta intensità di calcolo, valuta la possibilità di utilizzare famiglie di macchine ottimizzate per il calcolo.
- Testa il tuo carico di lavoro con eventi di manutenzione simulati per scoprire il suo rendimento durante la migrazione live (se abilitata), in particolare durante i test di carico.
- Se nella VM esegui un kernel Linux o moduli personalizzati, 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 ulteriori informazioni, consulta Dettagli del sistema operativo.