我已经看到了一些关于烦人的错误报告和问题(在 stackexchange 和其他地方)"BUG: soft lockup - CPU#<n> stuck for <dt>s!"
。到目前为止,我还没有找到任何线索做什么或尝试(相反,我发现并遵循的线索并没有阻止这种情况的发生)。我对此更加担心,因为:
- 这些事件的频率最近似乎在缓慢上升(每月超过 700 起),
yum update
重新启动会减慢速度一段时间,但我看到一些锁定再次开始发生,- 几个进程(如果不是整个主机,很难说),当然包括我所有的交互式 shell,在发生这种情况时会冻结一段时间,
- 我不确定它是否相关,但我看到很多与 ntpd 无法更新时钟相关的日志/消息。
以下是摘录$(grep 'soft lockup' /var/log/messages*)
:
Mar 22 10:02:35 localhost kernel: BUG: soft lockup - CPU#15 stuck for 10s! [kjournald:1048]
Mar 22 10:02:36 localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s! [postgres:5372]
Mar 22 10:02:36 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [postgres:5368]
Mar 22 10:02:37 localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s! [postgres:5372]
Mar 22 10:02:37 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [postgres:5368]
Mar 22 10:02:38 localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s! [postgres:5372]
Mar 22 10:02:38 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [postgres:5368]
Mar 22 10:02:39 localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s! [postgres:5372]
Mar 22 10:02:39 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [postgres:5368]
Mar 22 10:02:40 localhost kernel: BUG: soft lockup - CPU#15 stuck for 25s! [swapper:0]
Mar 22 15:42:16 localhost kernel: BUG: soft lockup - CPU#8 stuck for 25s! [kjournald:1048]
Mar 22 18:22:13 localhost kernel: BUG: soft lockup - CPU#15 stuck for 10s! [postgres:21356]
Mar 22 18:22:20 localhost kernel: BUG: soft lockup - CPU#7 stuck for 10s! [java:8653]
Mar 22 18:22:20 localhost kernel: BUG: soft lockup - CPU#8 stuck for 72s! [kjournald:1048]
Mar 22 21:21:37 localhost kernel: BUG: soft lockup - CPU#12 stuck for 29s! [kjournald:1048]
Mar 22 21:22:07 localhost kernel: BUG: soft lockup - CPU#12 stuck for 27s! [kjournald:1048]
Mar 23 02:01:47 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [kblockd/8:276]
Mar 23 02:02:22 localhost kernel: BUG: soft lockup - CPU#8 stuck for 34s! [kblockd/8:276]
这种情况发生在随机进程中,并且似乎相当均匀地分布在该虚拟主机的 16 个“核心”上。
该主机是一个 AWS EC2“cc1.4xlarge”实例,其 AMI 名为“EC2 CentOS 5.5 GPU HVM AMI (驱动程序 260.19.29) (ami-42a2532b)”。好像是用Xen虚拟化的。
cat /etc/redhat-release
产量CentOS release 5.9 (Final)
. 'free'
报告内存为 21G。
的头dmesg
是:
Linux version 2.6.18-348.3.1.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Mon Mar 11 19:39:25 EDT 2013
Command line: ro root=/dev/VolGroup00/LogVol00 rhgb quiet console=tty0 console=ttyS0,115200n8
BIOS-provided physical RAM map:
BIOS-e820: 0000000000010000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000c0000000 (usable)
BIOS-e820: 00000000fc000000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 00000005dd800000 (usable)
DMI 2.4 present.
DMI: Xen HVM domU, BIOS 3.4.3-2.6.18 08/29/2012
ACPI: RSDP (v002 Xen ) @ 0x00000000000ea020
ACPI: XSDT (v001 Xen HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc0062b0
ACPI: FADT (v004 Xen HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc005ee0
ACPI: MADT (v002 Xen HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc005fe0
ACPI: SRAT (v001 Xen HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc0060c0
ACPI: SLIT (v001 Xen HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc006240
ACPI: HPET (v001 Xen HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc006270
ACPI: DSDT (v002 Xen HVM 0x00000000 INTL 0x20090220) @ 0x(null)
下面显示了最近一段时间内这些“软锁定”的累积计数(红线是我最后一次执行时的情况,yum update
后跟reboot
):
。
下面显示了持续时间(主机卡住了多长时间)的柱状图: 。
答案1
我在带有 3.6 和 3.8 内核的 Xen 4.2 (AlpineLinux) 上也遇到了这个问题。
我用谷歌搜索了一下,通过将clocksource=jiffies 添加到我的内核中,我修复了它。除了 jiffies,您还可以尝试“pit”。
还有报道称在 BIOS 中禁用 C 状态。
答案2
我的 Thinkpad T520 也有同样的问题。但我没有对内核进行攻击,而是做了一些更简单的事情。首先,我使用的是 Centos7,我安装的基本系统一切正常。后来我添加了 GNOME GUI,这时我开始遇到上述问题。我注意到很多制造商都为 Windows 安装进行了设置。显卡通常设置为 Win7(NVIDIA OPTIMUS),我将其重置为集成显卡模式,不再出现挂起/错误。怎么做?重新启动您的 Thinkpad,按 F1 或蓝色 thinkvantage 按钮进入 BIOS。转到图形选择集成显卡然后 F10 保存并退出。该卡有 3 种设置:集成、离散和 NVIDIA OPTIMUS(仅限 Win7?) 希望这可以节省一些时间?