我今天早上把服务器锁起来了。 这是来自控制台的屏幕截图:

没有任何来自屏幕截图的消息对我来说意味着什么。 我有一种感觉,重要的东西可能滚动了控制台。 在系统日志,消息,dmesg,debugging日志或在崩溃时间logging的所有内容中,我找不到上述屏幕截图中的任何消息。 不应该logging这些东西吗?
这是运行Proxmox的Debian框。 uname输出:
2.6.32-4-pve#1 SMP Mon May 9 12:59:57 CEST 2011 x86_64 GNU / Linux
服务器已经在线大约一年没有其他崩溃,它再次启动就好了。
我很想弄清楚问题可能是什么,以便我们可以防止它在未来再次发生。 但是,从目前为止的证据来看,我甚至不知道这是硬件还是软件问题。 想法?
你运行的是哪个Debian内核版本? 如果您执行“dpkg -l | grep linux-image”,则可以看到完整版本和修订版本号。
看起来你正在碰到一个相当stream行的bug ,我已经看到了很多次:在3.2 mainline之前的内核, 2.6.32.50 stable之前和Debian 2.6.32-45之前(基于2.6.32.50 stable),有一个时钟溢出将会在〜208天的正常运行时间后触发,这将会导致崩溃的可能性 。 我不知道到底是什么原因导致了这次事故的发生。 补丁本身也很模糊 :
Although we may still have enough bits to store the value of ns, in some cases, we may not have enough bits to store cycles * cyc2ns_scale, leading to an incorrect result.
由于这个问题,我已经看到了上百次崩溃事件,然后才确定是什么原因造成的,并且补丁已经部署了。
这个bug 在 2011年年底在lkml中被详细讨论过了。可能有一个可能的连接到这个零错误 ,但是我还没有find任何结论。
TL; DR:可能的解决方法是升级到Debian的linux-image版本2.6.32-45或更高版本。
这是内核恐慌的截图。 traceback是从里面打印出来的,所以最终杀死内核的任何函数都离开了屏幕顶部,但是从顶部开始的是调用divide_error()中的hpet_msi_next_event() divide_error()在内核中被定义为陷阱FPE_INTDIV ,所以hpet_msi_next_event()东西试图除以零。
不幸的是,其原因可能是硬件,软件,甚至只是一个短暂的位翻转错误。 (你使用ECC内存吗?)