服务器报错kernel:[33161,367636] watchdog: BuG: soft lockup - cPu#10 stuck for 22s! [iava:2575001] 内核软死锁

报错信息如图

该报错 是: 内核软死锁(soft lockup)

  1. 名词释义:
    soft lockup就是说,这个bug没有让系统彻底死机,但是若干个进程(或者kernel thread)被锁死在了某个状态(一般在内核区域),很多情况下这个是由于内核锁的使用的问题。

  2. 通常由以下原因引发:
    ‌CPU资源不足或超负荷‌: 长时间高负载导致CPU无法响应中断或调度器心跳信号12。
    ‌内核任务阻塞或死循环‌:某进程在内核态长时间占用CPU且未释放资源。
    虚拟机配置问题‌: vCPU分配超过物理CPU核数,或虚拟机资源(CPU/内存)受限。
    ‌硬件或驱动异常‌: 如电源不稳、超频、网卡驱动Bug等。

  3. 处理办法:

①cpu锁死,系统不能用的情况下,重启即可。

②如果确认不是软件或者程序问题的情况,处理办法:

增加watchdog等待时长(系统默认是10)

sudo sh -c "echo 30 >/proc/sys/kernel/watchdog_thresh"

临时生效

sudo sysctl -w kernel.watchdog_thresh=30

若想长期使该参数生效:

sudo vi  /etc/sysctl.conf

添加:

kernel.watchdog_thresh=30

保存后执行:

sudo sysctl -p
watchdog: BUG: soft lockup - CPU #5 stuck for 22s! [qaxbrowser:12864]” 错误表明 CPU #5 被锁死了 22 秒,进程 `qaxbrowser`(进程 ID 为 12864)可能与此问题相关。以下是一些解决该错误的方法: ### 检查并优化内核锁的使用 该错误可能是因为内核锁使用问题导致,例如同一把锁被多次调用,要审查代码中内核锁的使用情况,避免死锁情况发生。确保在使用锁保护共享资源时,正确地加锁和解锁,避免长时间持有锁。若此错误是在驱动压测中出现,且两次原子锁调用是同一把锁(用锁保护同一个消息队列),就可能导致系统死锁,进而触发该错误 [^2]。 ### 调整 soft lockup 阈值 可以通过修改 `/proc/sys/kernel/watchdog_thresh` 文件来调整 soft lockup 的阈值。默认情况下,该阈值为 10 秒,如果系统负载较高,可能会频繁触发 soft lockup 告警,可以适当增加该阈值。例如,将阈值调整为 30 秒: ```bash echo 30 > /proc/sys/kernel/watchdog_thresh ``` 为了使该设置在系统重启后仍然生效,可以将其添加到 `/etc/sysctl.conf` 文件中: ```plaintext kernel.watchdog_thresh = 30 ``` 然后执行以下命令使配置生效: ```bash sysctl -p ``` ### 检查系统负载 过高的系统负载可能导致 CPU 无法及时响应 watchdog 进程,从而触发 soft lockup 告警。可以使用 `top`、`htop` 等工具检查系统的负载情况,找出占用 CPU 资源较高的进程,并进行相应的优化或调整。对于当前报错中提到的 `qaxbrowser` 进程,可以重点关注其资源占用情况,若其占用过高,可考虑关闭不必要的浏览器标签或更新浏览器版本等 [^3]。 ### 升级内核版本 有时,该错误可能是由于内核中的 bug 导致的。可以尝试升级到最新的稳定内核版本,以修复可能存在的问题。 ### 检查硬件问题 硬件故障也可能导致 soft lockup 错误,例如 CPU 过热、内存故障等。可以检查硬件设备的状态,确保硬件正常工作。可以使用硬件监控工具检查 CPU 温度、内存使用情况等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值