我正在运行 Ubuntu 10.04 (x64) 作为 web/mysql 服务器。
该服务器对 SSH、Ping、HTTP 等没有响应,并且对该机器具有物理访问权限的技术人员向我发送了此屏幕截图:
http://img442.imageshack.us/img442/389/img00062201012211332.jpg
在重新启动之前从连接的显示器获取信息(并且情况已修复)。我不确定这些信息保存在哪个日志中,因为在重新启动后检查日志后我找不到文本。
有人能帮助我调查发生了什么,并确保它不再发生吗?
谢谢
答案1
内核崩溃可能由多种原因引起,通常是模块问题(驱动程序不适合您的硬件)或硬件问题。
对于你的情况,如果问题无法重现,则更有可能是硬件问题。
也可能是内存问题(坏内存并不总是容易识别)。
我会启动服务器 - 并在启动后立即选择 grub 屏幕中的“memtest86”选项。内存测试需要连续运行几天。
如果 3 天后没有错误,则内存或许好的。
答案2
如果您没有其他信息(正如 ring0 所说,它不会保存到磁盘的某个地方),那么您就无能为力了。
如果您想要主动出击,或者这种情况随机发生几次,您可以尝试 LKCD 来捕获核心转储。 http://lkcd.sourceforge.net/
我不知道你有多少 RAM,但即使尝试 memtest86 几个小时也可能有益。它显然无法捕获真正罕见的错误。
我还建议您添加 kernel.panic=5 /etc/sysctl.conf。如果内核再次挂起,这将导致服务器在 5 秒后自动重新启动。
最后,我认为你应该始终拥有某种无人值守的管理。然后你可以登录并抄下消息,然后自己重启服务器。
答案3
我曾见过服务器长时间运行负载过高/进程过多时发生此类崩溃的情况。为了全面检查机器上发生的情况,我建议在服务器上安装一个监控框架,例如 munin - 如果再次发生这种情况,这将有助于分析。
答案4
这听起来可能有点不对劲,但我在 64 位服务器上运行 Ubuntu x64 时遇到了问题。我经常遇到同样的错误和随后的“冻结”问题。它尝试删除驱动程序,重新添加驱动程序,花了几个小时查找错误,但都无济于事。我最终通过安装 32 位版本的 Ubuntu 解决了这个问题。它起作用了,我不需要 64 位,所以我就让它继续吧。如果您需要 64 位,这不是一个好的解决方案,但它可能会为您提供一条探索的道路。也许查看您运行 Ubuntu 的服务器,看看它是否存在已知的兼容性问题。祝你好运。