报错代码
watchdog: Bug: soft lockup - CPU......
分析
当 CPU 的负载过高时,一个 CPU 在运行某一个进程时,在内核模式下超过 20 秒没有回应,则看门狗程序会将系统所有 CPU 软锁住,然后会让这些 CPU 显示各自正在运行的进程堆栈跟踪
缓解方法
方法一:通过 /proc/sys/kernel/watchdog_thresh 文件延长看门狗软锁 CPU 的时间
# echo 20 > /proc/sys/kernel/watchdog_thresh
(补充:这里以将看门狗的值延长到 20 为例,也可以根据自己的需求延长更多,默认值为 10)
方法二:通过新建文件延长看门狗软所 CPU 的时间
2.1 通过新建文件延长看门狗软所 CPU 的时间
# echo "kernel.watchdog_thresh = 20" >> /etc/sysctl.conf
(补充:这里以将看门狗的值延长到 20 为例,也可以根据自己的需求延长更多,默认值为 10)
2.2 让新建文件立刻生效
# sysctl -p /etc/sysctl.conf
深究方法
开启 Kdump,等此报错再次发生时分析 Kdump 在内核崩溃时搜集信息 vmcore