Ce document explique comment résoudre les blocages logiciels des vCPU. Un blocage logiciel se produit lorsqu'un processeur virtuel (CPU virtuel) d'une instance de machine virtuelle (VM) ne peut pas exécuter une nouvelle tâche pendant plus de 20 secondes. La plupart des blocages logiciels sont dus à des bugs dans les logiciels d'application.
Les blocages logiciels peuvent entraîner l'arrêt de la réponse des VM pendant de courtes périodes, perturber l'accès SSH aux VM et déclencher des délais avant expiration ou des basculements d'application. Les VM qui rencontrent un blocage logiciel peuvent également présenter une utilisation inhabituellement élevée ou faible du processeur, en fonction de la cause exacte du blocage logiciel.
Identifier les blocages temporaires
Pour déterminer si votre VM est victime d'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 trouver une trace de pile de blocage logiciel.
- Examinez les journaux du système d'exploitation (
/var/log/messages
) de votre VM pour trouver une trace de pile de blocage temporaire.
Exemple de trace de la pile de blocage logiciel
watchdog: BUG: soft lockup - CPU#3 stuck for 22s!
Pour détecter les futurs blocages logiciels, procédez 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 blocages temporaires
Une fois que vous avez identifié un blocage logiciel, essayez de résoudre le problème en procédant comme suit:
- Consultez le site du fournisseur de votre OS pour connaître les erreurs connues liées à votre version. Il peut arriver que vous trouviez une référence à des modules de kernel 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 logiciel se répète à une fréquence donnée, par exemple en cas de charge élevée ou 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 importante ou en répartissant la charge sur plusieurs VM.
- Vérifiez si les blocages logiciels sont corrélés à des modifications apportées à votre environnement d'exécution, telles que 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 logiciel 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 que des composants redondants appropriés sont configurés pour votre système, tels que des clusters à haute disponibilité, afin de fournir une fonctionnalité de basculement si une VM particulière fait l'objet d'un blocage logiciel prolongé. Pour en savoir plus, consultez la section Concevoir des systèmes résilients.
- Pour les charges de travail exigeantes en calcul, 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 connaître 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 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 bénéficier de l'assistance de votre fournisseur d'OS.
- Mettez à jour votre système d'exploitation. Pour en savoir plus, consultez la page Détails des systèmes d'exploitation.