Les noyaux Linux antérieurs à la version 4.15 peuvent déclencher une erreur softlockup lors de l'écriture du cache de fichiers. Mettez à jour le noyau pour résoudre ce problème.
Symptôme
Sur une instance ECS Linux dont la version du noyau est antérieure à 4,15, une erreur softlockup se produit lors de l'écriture du cache de fichiers. Une pile d'appels similaire à celle ci-dessous s'affiche.
Exécutez uname -r pour vérifier la version du noyau. Par exemple, si la sortie est 3.10.0-514.26.2.el7.x86_64, la version du noyau est 3.10.0. Dans cette rubrique, la version 4.15 fait référence à 4.15.0.
[3507707.671883] [<ffffffff8127cf7a>] redirty_tail+0x3a/0x40
[3507707.671884] [<ffffffff81280ea4>] __writeback_inodes_wb+0x64/0xc0
[3507707.671885] [<ffffffff81281238>] wb_writeback+0x268/0x300
[3507707.671887] [<ffffffff812819f4>] wb_workfn+0xb4/0x380
[3507707.671889] [<ffffffff810a5dc9>] process_one_work+0x189/0x420
[3507707.671890] [<ffffffff810a625b>] worker_thread+0x1fb/0x4b0
[3507707.671891] [<ffffffff810a6060>] ? process_one_work+0x420/0x420
[3507707.671893] [<ffffffff810ac696>] kthread+0xe6/0x100
[3507707.671894] [<ffffffff810ac5b0>] ? kthread_park+0x60/0x60
[3507707.671897] [<ffffffff81741dd9>] ret_from_fork+0x39/0x50
Cause
Lorsque la mémoire de l'instance ECS est insuffisante, le noyau appelle fréquemment wakeup_flusher_threads, ce qui génère un nombre excessif de tâches d'écriture (wb_writeback_work). Les threads d'écriture se bloquent lors du traitement de ces tâches, ce qui déclenche une erreur softlockup.
Solution
Mettez à jour le noyau vers une version ultérieure à 4,15. Alibaba Cloud Linux n'est pas concerné par ce problème, car sa version de noyau est 4,19. Les étapes suivantes s'appliquent aux autres distributions Linux.
Avant de poursuivre, créez des snapshots pour sauvegarder les données de l'instance et prévenir toute perte de données. Consultez la rubrique Créer manuellement un snapshot.
-
Connectez-vous à l'instance Linux.
Consultez la rubrique Se connecter à une instance Linux à l'aide de Workbench.
-
Vérifiez la version du noyau :
uname -r -
Si la version du noyau est 4,15 ou antérieure, mettez-la à jour :
Si la version du noyau est ultérieure à 4,15, l'erreur softlockup ne s'applique pas. Aucune autre action n'est nécessaire.
yum update kernelRemarqueSi
yum update kerneléchoue pour votre version de noyau, téléchargez un package RPM de noyau supérieur à 4.15 et effectuez la mise à niveau manuellement. -
Redémarrez l'instance après la mise à jour du noyau.
reboot -
Après le redémarrage, vérifiez que la version du noyau est ultérieure à 4,15 :
uname -r