今天早上我有一个服务器锁定。这是控制台的屏幕截图:
屏幕截图中的任何消息对我来说都没有任何意义。我有一种感觉,重要的东西可能从控制台上滚下来了。我无法在系统日志、消息、dmesg、调试日志或崩溃时记录的任何内容中找到上述屏幕截图中的任何消息。这些东西不应该被记录下来吗?
这是一个运行 Proxmox 的 Debian 盒子。uname 输出:
2.6.32-4-pve #1 SMP 2011 年 5 月 9 日星期一 12:59:57 CEST x86_64 GNU/Linux
该服务器已经在线大约一年了,没有其他崩溃,并且它再次启动时一切正常。
我很想弄清楚问题可能是什么,以便我们可以防止它在未来再次发生。但是,根据我目前掌握的证据,我什至不知道这是硬件问题还是软件问题。想法?
您运行的究竟是哪个 Debian 内核版本?如果你执行“dpkg -l | grep linux-image”,你可以看到完整的版本和修订号。
看起来你遇到了一个相当普遍的错误,我已经多次看到它:在 3.2 主线之前、2.6.32.50 稳定版之前和 Debian 的2.6.32-45(基于 2.6.32.50 稳定版)之前的内核中,有一个大约 208 天的正常运行时间后将发生时钟溢出,这反过来又会导致崩溃的可能性。我不知道在那之后究竟是什么导致了崩溃;补丁本身也很模糊:
在确定导致崩溃的原因并部署补丁之前,我已经看到由于这个问题导致的崩溃超过一百次。
该错误在 2011 年底的 lkml 中进行了详细讨论。可能与此除以零错误有关,但我还没有找到任何结论。
TL;DR:可能的解决方法是升级到 Debian 的 linux-image 版本 2.6.32-45或更高版本。
这是内核恐慌的屏幕截图。traceback 由内向外打印,因此无论最终杀死内核的函数都位于屏幕顶部,但从顶部开始调用
divide_error()
inhpet_msi_next_event()
divide_error()
在内核中定义为FPE_INTDIV的陷阱,因此hpet_msi_next_event()
试图除以零。不幸的是,其原因可能是硬件、软件,甚至只是瞬态位翻转错误。(您使用的是 ECC 内存吗?)