我们有一个运行 Ubuntu 的 VPS,在 Xen 上。问题是,每天大约一次,在大约 20-50 分钟的随机时间,服务器对外界完全没有响应。这段时间过后,它又恢复响应,好像什么事都没发生过一样,它没有失去正常运行时间,也没有重新启动。它只是开始再次响应,就像它处于假死状态一样。
这些中断发生在内存和 CPU 无异常的情况下,例如 70% 内存、5% CPU。我已停止所有非必要服务,因此使用率非常均匀。这些中断不会特别发生在内存/CPU 增加的时候(在日常任务期间),它们有时会发生在 CPU 使用率非常低的时候(<2%),但过去在交换期间也发生过。
这些停电都发生在 Ubuntu 12.04 LTS 和 Ubuntu 14.04 LTS 下 - 没有任何变化(我专门升级了 Ubuntu 以查看它是否有助于解决这个问题)。
可以登录我们的网站,并使用他们的管理控制台查看这段时间内的错误消息。据推测,这些消息来自 Xen 虚拟化,主要消息如下:
BUG: soft lockp - CPU#0 stuck for 22s! [ksoftireqd/0:3] (repeats many times)
SysRq : Emergency Sync (Sometimes this is the only message in the console)
之前在不同负载情况下看到的其他情况包括:
BUG: soft lockup - CPU#0 stuck for 22s! [swapper/0:0]
(重复多次)或:
INFO: rcu_sched detected stall on CPU 0 (t=15000 jiffies)
(重复多次,t 逐渐增大)
通过谷歌搜索,我尝试了各种内核参数,例如 nohz=off 和 acpi=off,但都无济于事。技术支持人员只说其他 Ubuntu 安装没有遇到同样的问题。
有人对这个问题有什么想法或经验吗?
答案1
好吧,无论我怎么尝试,我都找不到解决这个问题的方法。最后,我用 Debian 7.0 替换了 Ubuntu,问题消失了,同时出现了一些异常的 CPU 使用率,这些使用率没有出现在 top 中,但出现在了 VPS 监控面板中(这种 CPU 使用率表现为在 2-3 天内逐渐增加到 10%,然后又降回 0%,导致 CPU 使用率图上出现“锯齿状”图案)。我做到了不是尝试重新安装 Ubuntu(虽然我尝试过升级到 14.04),因此我不能肯定地说用 Debian 替换 Ubuntu 是解决方案。尽管如此,Debian 一直像人们从它的声誉所期望的那样坚如磐石,遗憾的是,我可以说 Ubuntu 也符合它的声誉。我喜欢 Ubuntu,我非常喜欢 Unity,但看来 Ubuntu 在各种硬件上都不太稳定。
我已经回答了自己的问题,因为 1) 我确实找到了解决方案,2) 我在其他任何地方都找不到解决方案(除了 CentOS,将 CentOS 6 降级到 CentOS 5),所以这可能对遇到此问题的人有用,尽管可能不受欢迎。我知道我不会对这个解决方案感到满意:用 Debian 替换 Ubuntu!但最终我还是这样做了,以解决问题。顺便说一句,我选择了 Debian,因为我没有发现 Debian 中存在此问题的报告,而我发现 Ubuntu 和 CentOS 中存在此问题的报告。
答案2
希望这对将来遇到此问题的任何人有所帮助。
我们在类似的环境中遇到过这个问题:
- Ubuntu 14.04 3.13.0内核
- QEMU KVM 环境
我们的 Splunk 集群主机平均每五分钟就会发出一次这些警告。CPU 负载会定期上升到 35%,警告会将 splunkd 或 python 列为最有可能导致锁定的进程。
经过一番苦思冥想和咬牙切齿之后,我们无奈地将 Virt-Manager 中的磁盘总线设置从“virtio”更改为“SATA”。
问题就解决了。
目前我们仍在监控系统,但自从更改以来(至今半小时)它没有发出任何警告,并且 CPU 负载稳定在 2% 左右。
我知道现在开香槟、放烟花还为时过早,但我们仍充满希望。