本文介绍Linux系统的ECS实例无响应,在/var/log/messages
、/var/log/dmesg
等日志中出现“BUG: soft lockup – CPU#0 stuck for 61s”错误的问题原因和解决方案。
问题现象
Linux系统的ECS实例出现系统无响应,在/var/log/messages
、/var/log/dmesg
等日志中出现大量类似如下错误信息。
BUG: soft lockup - CPU#0 stuck for 61s
问题原因
该问题通常是由于ECS实例中,系统内核长时间占用CPU资源导致出现软死锁(soft lockup)故障,内核长时间占用CPU资源可能有以下原因:
系统负载过高
内核死循环或死锁
内核调度问题
内核出现故障
解决方案
出现soft lockup的原因比较复杂,您可以参考以下步骤进行排查。
检查系统负载。
使用top、sar、htop等工具检查系统负载,如果系统负载过高,需要调整系统配置或增加硬件资源来缓解负载。更多信息,请参见Linux实例负载高问题排查和异常处理。
检查内核是否存在死循环或死锁、内核调度问题。
使用内核调试工具(如Kgdb)检查内核代码,查找可能的死循环、死锁、内核调度问题,找到问题后,可以通过修改代码或应用补丁来解决。更多信息,请参见Kgdb。
检查内核是否存在已知缺陷。
查找Linux发行版社区中,是否存在对应内核版本的类似soft lockup故障。如果存在类似故障,可参考对应方案进行解决。常见的Linux发行版社区:
该文章对您有帮助吗?
- 本页导读 (1)
- 问题现象
- 问题原因
- 解决方案