Kernels Linux anteriores à versão 4.15 podem gerar um erro de softlockup durante o writeback do cache de arquivos. Atualize o kernel para resolver o problema.
Sintoma
Em uma instância ECS Linux com kernel anterior à versão 4.15, ocorre um erro de softlockup durante o writeback do cache de arquivos. O sistema gera uma pilha de chamadas semelhante à seguinte.
Execute uname -r para verificar a versão do kernel. Por exemplo, se a saída for 3.10.0-514.26.2.el7.x86_64, a versão do kernel será 3.10.0. Neste tópico, a versão 4.15 refere-se a 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
Causa
Quando a memória da instância ECS é insuficiente, o kernel chama frequentemente wakeup_flusher_threads e cria tarefas excessivas de writeback (wb_writeback_work). As threads de writeback travam ao processar essas tarefas, o que aciona o erro de softlockup.
Solução
Atualize o kernel para uma versão posterior a 4,15. O Alibaba Cloud Linux não é afetado porque sua versão de kernel é 4,19. As etapas a seguir aplicam-se a outras distribuições Linux.
Antes de prosseguir, crie snapshots para fazer backup dos dados da instância e evitar perda de dados. Consulte Criar snapshot manualmente.
-
Conecte-se à instância Linux.
-
Verifique a versão do kernel:
uname -r -
Se a versão do kernel for 4,15 ou anterior, atualize-a:
Caso a versão do kernel seja posterior a 4,15, o erro de softlockup não se aplica. Nenhuma ação adicional é necessária.
yum update kernelNotaSe
yum update kernelfalhar para a sua versão de kernel, baixe um pacote RPM de kernel posterior a 4,15 e faça a atualização manualmente. -
Reinicie a instância após a atualização do kernel.
reboot -
Após a reinicialização, verifique se a versão do kernel é posterior a 4,15:
uname -r