Kesalahan softlockup dapat terjadi ketika versi kernel Linux tertentu menulis data kembali ke cache file. Topik ini menjelaskan penyebab dan solusi untuk masalah tersebut.
Deskripsi Masalah
Pada instance Elastic Compute Service (ECS) Linux dengan versi kernel lebih lama dari 4.15, kesalahan softlockup terjadi saat kernel menulis data kembali ke cache file. Informasi tumpukan panggilan serupa dengan konten berikut dihasilkan.
Anda dapat menjalankan perintah uname -r untuk memeriksa versi kernel Linux. Sebagai contoh, jika 3.10.0-514.26.2.el7.x86_64 ditampilkan dalam output perintah, versi kernel adalah 3.10.0. Dalam topik ini, versi 4.15 merujuk pada versi 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/0x50Penyebab
Kernel sistem operasi sering memanggil fungsi wakeup_flusher_threads ketika memori instance ECS tidak mencukupi. Kemudian, sejumlah besar tugas writeback (wb_writeback_work) dibuat. Akibatnya, thread writeback terus memproses tugas writeback, dan kesalahan softlockup terjadi pada sistem operasi.
Solusi
Perbarui kernel ke versi setelah 4.15. Masalah ini tidak terjadi pada sistem operasi Alibaba Cloud Linux karena versi kernel sistem operasi Alibaba Cloud Linux adalah 4.19. Solusi berikut berlaku untuk distribusi Linux selain sistem operasi Alibaba Cloud Linux.
Sebelum melakukan operasi dalam solusi ini pada instance tempat masalah terjadi, kami sarankan Anda membuat snapshot untuk instance tersebut guna mencadangkan data. Ini mencegah hilangnya data akibat operasi yang tidak disengaja. Untuk informasi tentang cara membuat snapshot, lihat Buat snapshot.
Hubungkan ke instance Linux.
Untuk informasi lebih lanjut, lihat Gunakan Workbench untuk menghubungkan ke instance Linux melalui SSH.
Jalankan perintah berikut untuk melihat versi kernel sistem operasi:
uname -rJika versi kernel adalah 4.15 atau lebih lama, jalankan perintah berikut untuk memperbarui versi kernel.
Jika versi kernel lebih baru dari 4.15, kesalahan softlockup tidak akan terjadi pada sistem operasi. Anda tidak perlu melakukan operasi berikutnya.
yum update kernelCatatanJika Anda tidak dapat memperbarui versi kernel tertentu yang lebih lama dengan menjalankan perintah
yum update kernel, unduh paket RPM kernel versi setelah 4.15 dan tingkatkan versi kernel menggunakan paket RPM kernel tersebut.Mulai ulang instance setelah Anda memperbarui versi kernel.
rebootSetelah Anda memulai ulang instance, jalankan kembali perintah berikut untuk memeriksa apakah versi kernel lebih baru dari 4.15:
uname -r