バージョン 4.15 より前の Linux カーネルでは、ファイルキャッシュのライトバック中に softlockup エラーが発生する可能性があります。カーネルをアップグレードすることで、この問題は解決します。
現象
カーネルバージョンが 4.15 より前の Linux ECS インスタンスでは、ファイルキャッシュのライトバック中に softlockup エラーが発生します。以下のような呼び出しスタックが生成されます。
uname -r を実行してカーネルバージョンを確認します。たとえば、出力が 3.10.0-514.26.2.el7.x86_64 の場合、カーネルバージョンは 3.10.0 です。このトピックでは、バージョン 4.15 は 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
原因
ECS インスタンスのメモリが不足している場合、カーネルは頻繁に wakeup_flusher_threads を呼び出し、過剰なライトバックタスク (wb_writeback_work) を作成します。ライトバックスレッドはこれらのタスクの処理に行き詰まり、softlockup エラーをトリガーします。
ソリューション
カーネルをバージョン 4.15 より後のバージョンにアップデートします。Alibaba Cloud Linux は、カーネルバージョンが 4.19 であるため、この問題の影響を受けません。以下の手順は、他の Linux ディストリビューションが対象です。
作業を開始する前に、データ損失を防ぐため、スナップショットを作成してインスタンスデータをバックアップしてください。詳細については、「スナップショットを手動で作成」をご参照ください。
-
Linux インスタンスに接続します。
詳細については、「ワークベンチを使用して Linux インスタンスにログイン」をご参照ください。
-
カーネルのバージョンを確認します:
uname -r -
カーネルのバージョンが 4.15 より前の場合は、アップデートします:
カーネルバージョンが 4.15 より後のバージョンの場合、この softlockup エラーは発生しません。これ以上の操作は不要です。
yum update kernel説明お使いのカーネルバージョンで
yum update kernelが失敗する場合は、バージョン 4.15 より後のバージョンのカーネル RPM パッケージをダウンロードして手動でアップグレードしてください。 -
カーネルのアップデート後、インスタンスを再起動します。
reboot -
再起動後、カーネルのバージョンが 4.15 より後のバージョンであることを確認します:
uname -r