内核恐慌问题:如何修复 hung_task_timeout_secs 并阻塞超过 300 秒?

内核恐慌问题:如何修复 hung_task_timeout_secs 并阻塞超过 300 秒?

我的服务器是CentOS7 64位正在kernel panic发行,重新启动每天早上 7 点到 8 点左右。以下是 dmesg 的一部分

[  536.606448] tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
[82341.807403] INFO: task sync:6493 blocked for more than 300 seconds.
[82341.807406]       Tainted: P           O 3.14.39ltsi-ayan-130.0.33 #1
[82341.807407] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[82341.807408] sync            D ffffffff81a0b3c0     0  6493      1 0x00000000
[82341.807410]  ffff8801ed563d80 0000000000000086 0000000000009000 ffff880308cb4800
[82341.807412]  ffff8803f962b000 ffff8801ed563fd8 ffff880308cb4800 ffff8803f922f600
[82341.807413]  ffff8801ed563d60 ffff8801ed563e98 7fffffffffffffff ffff8801ed563e90
[82341.807415] Call Trace:
[82341.807421]  [<ffffffff81802029>] schedule+0x29/0x70
[82341.807422]  [<ffffffff81801169>] schedule_timeout+0x199/0x280
[82341.807426]  [<ffffffff81085d42>] ? __queue_delayed_work+0xa2/0x1b0
.
.
.
[82341.807867] Code: 00 00 48 8d 86 38 c0 ff ff 48 89 d1 0f 01 c8 65 48 8b 04 25 70 a8 00 00 48 8b 80 38 c0 ff ff a8 08 75 08 b1 01 4c 89 e0 0f 01 c9 <65> 48 8b 04 25 70 a8 00 00 83 a0 3c c0 ff ff fb 0f ae f0 65 48 
[82341.808450] Kernel panic - not syncing: hung_task: blocked tasks
[82341.814824] CPU: 0 PID: 75 Comm: khungtaskd Tainted: P           O 3.14.39ltsi-ayan-130.0.33 #1

我从 dmesg 了解到,同步是一个过程pid-6490等待 DISK 操作并被阻塞 300 秒,因为 DISK 被其他进程占用。同步进入进程状态 D(不可中断睡眠)。

一年前,我第一次看到恐慌问题通过调整sysctl.conf文件得到解决,然后问题就消失了。由网站指导https://www.blackmoreops.com/2014/09/22/linux-kernel-panic-issue-fix-hung_task_timeout_secs-blocked-120-seconds-problem/

这是 /etc/sysctl.conf 的当前配置

kernel.hung_task_timeout_secs = 300
vm.dirty_background_ratio = 5 
vm.dirty_ratio = 10

我已经配置了每日计划任务数据库数据备份任务pgsql。数据大小约为 200GB 以及一些其他任务。

服务器详细信息:

Filesystem                Size  Used Avail Use% Mounted on
total                     3.7T  1.1T  2.6T  30%
RAM: 16GB

相关内容