rcu_sched 自我检测 CPU + 看门狗停转:BUG:软锁定 - CPU#3 卡住 22 秒

rcu_sched 自我检测 CPU + 看门狗停转:BUG:软锁定 - CPU#3 卡住 22 秒

由于无法通过 ssh 进入机器,我将其连接到显示器并发现以下情况:

在此处输入图片描述

该机器运行的是 Ubuntu Server 18.04 LTS,是第一代 8 核 Ryzen 1700。此后我重新启动了机器,它运行良好,但不确定是什么原因导致了这种情况,并想避免它再次发生。

在此处输入图片描述

在此处输入图片描述

答案1

从:这些“Bug:软锁定”消息都是关于什么的?

情况

在系统日志(/var/log/messages 或 journalctl)中打印了许多以下消息。

May 25 07:23:59 XXXXXXX kernel: [13445315.881356] BUG: soft lockup - CPU#16 stuck for 23s! [yyyyyyy:81602]

随后是各种堆栈跟踪。本文档尝试解释软锁定消息的含义。

错误消息本身并没有告诉您问题的原因。

原因

“软锁定”是指导致内核在内核模式下循环超过 20 秒,而没有给其他任务运行机会的错误。看门狗守护程序将向系统中的所有 CPU 发送不可屏蔽中断 (NMI),然后这些 CPU 会打印当前正在运行的任务的堆栈跟踪。

减少服务器负载是正常的解决方案:

解决

在正常情况下,如果负载减少,这些消息可能会消失。如果内核很忙,处理大量需要扫描、释放或分配的对象,则可能会发生这种“软锁定”。这些任务的堆栈跟踪可以初步了解任务正在做什么。但是,为了能够检查消息背后的原因,需要进行内核转储。

您无法禁用这些消息,但是在某些情况下,增加触发这些软锁定的时间来缓解这种情况。

这样做只需增加以下sysctl参数: kernel.watchdog_thresh此参数的默认值是10,将该值加倍可能是个好的开始。

相关内容