Ce document explique comment résoudre les problèmes de blocage logiciel des processeurs virtuels. Un blocage logiciel se produit lorsque le processeur virtuel d'une instance de machine virtuelle (VM) ne parvient pas à exécuter une nouvelle tâche pendant plus de 20 secondes. La plupart des blocages logiciels sont dus à des bugs dans le logiciel de l'application.
Les blocages logiciels peuvent rendre les VM non réactives pendant de courtes périodes, perturber l'accès SSH aux VM et déclencher des délais d'attente ou des basculements d'application. Les VM qui rencontrent un blocage logiciel peuvent également présenter une utilisation du processeur anormalement élevée ou faible, selon la cause exacte du blocage logiciel.
Identifier les verrouillages partiels
Pour déterminer si votre VM est confrontée à un blocage logiciel, procédez comme suit :
- Si vous avez déjà activé la journalisation des données en sortie du port série pour votre VM, examinez la sortie du port série pour obtenir une trace de pile de blocage logiciel.
- Consultez les journaux du système d'exploitation de votre VM (
/var/log/messages
) pour obtenir une trace de pile de blocage logiciel.
Exemple de trace de pile de verrouillage temporaire
watchdog: BUG: soft lockup - CPU#3 stuck for 22s!
Pour détecter les futurs blocages temporaires, vous pouvez procéder comme suit :
Activez la journalisation des données en sortie du port série.
Créez une règle d'alerte basée sur les journaux pour le journal suivant :
resource.type="gce_instance" log_id("serialconsole.googleapis.com/serial_port_1_output") textPayload=~"watchdog.*lockup"
Résoudre les problèmes de blocage partiel
Une fois que vous avez identifié qu'un blocage temporaire se produit, essayez les étapes de dépannage suivantes pour résoudre le problème :
- Consultez le site de votre fournisseur d'OS pour connaître les erreurs connues avec votre version d'OS. Il peut arriver que vous trouviez des références à des modules de noyau spécifiques dans la trace de la pile, ce qui suggère une fonction ou une opération particulière impliquée.
- Déterminez si le blocage temporaire se répète à une certaine fréquence, par exemple en cas de charge élevée ou lors de certaines activités. Si les blocages logiciels sont corrélés à une charge élevée, vous devrez peut-être reconfigurer votre charge de travail, par exemple en utilisant une VM plus grande ou en répartissant la charge sur plusieurs VM.
- Vérifiez si les blocages logiciels sont liés à des modifications apportées à votre environnement d'exécution, comme de nouveaux déploiements de logiciels ou des mises à jour d'images d'OS.
- Évaluez si des événements de maintenance ont eu lieu au moment du blocage temporaire en examinant les journaux d'audit pour les journaux d'audit des événements système.
Si les étapes de dépannage précédentes n'ont pas permis de résoudre le problème, envoyez une demande d'assistance en incluant toutes les informations que vous avez recueillies lors du dépannage.
Bonnes pratiques pour éviter les blocages temporaires
Pour éviter que vos VM ne subissent des blocages logiciels, nous vous recommandons d'appliquer les bonnes pratiques suivantes :
- Assurez-vous d'avoir configuré les composants redondants appropriés pour votre système, tels que les clusters à haute disponibilité, afin de fournir une capacité de basculement si une VM particulière subit un blocage logiciel prolongé. Pour en savoir plus, consultez Concevoir des systèmes résilients.
- Pour les charges de travail exigeantes en calculs, envisagez d'utiliser des familles de machines optimisées pour le calcul.
- Testez votre charge de travail avec des événements de maintenance simulés pour découvrir ses performances lors de la migration à chaud (si elle est activée), en particulier lors des tests de charge.
- Si vous exécutez un noyau Linux personnalisé ou des modules personnalisés dans votre VM, testez les nouvelles modifications sous charge avant de les déployer dans votre environnement de production. Vérifiez que vos modifications personnalisées ne vous empêchent pas de recevoir l'assistance de votre fournisseur d'OS.
- Maintenez votre système d'exploitation à jour. Pour en savoir plus, consultez la page Détails des systèmes d'exploitation.