我有 2 个 Debian Linux 6.0.4 服务器有一个奇怪的行为:5-7-10 天后它们挂起。我的意思是服务器需要重新启动,在此之前 ping 不会回答。
几个月来我一直在努力解决这个问题,这里有一些想法/我尝试过但无法解决问题。
- 我更改了服务器上的 RAM。作为两台不同的服务器,我怀疑它可能与硬件有关,因为第三台相同的服务器不会有这个问题。
- 我记录了服务器负载,当它崩溃时负载很好(非常低)
- 我在服务器日志中找不到任何内容,在服务器冻结之前日志都很好。
- 不幸的是,我无权访问控制台。
虽然我有多年的管理经验,但我从未遇到过这样的问题,现在我不知道还能去哪里调查。
如果您知道我可以尝试什么来解决问题,请与我分享:-)
服务器真的挂了还是只是ping不通?
安装一个监控工具,例如 Munin(或类似工具),它不仅会向您显示 CPU 负载的图表,还会显示内存统计信息、磁盘使用情况以及各种其他零碎信息——您可以将其配置为监控很多方面。下次服务器挂起时,检查图表是否有任何异常迹象。您将学习如何查看正常图形,因此任何不寻常的东西都是可疑的(尽管不一定是错误的)。
您确定要检查所有服务器日志吗?即你有网络/邮件/ftp/dns/其他服务器吗?检查所有这些日志!不要忘记在故障排除时启用调试日志记录。
如果服务器每周左右崩溃,它可能是经常发生的事情,即 cron 作业或日志轮换,诸如此类。
确保您收到所有系统电子邮件(root 别名)。您甚至可以安装 OSSEC,这是一个很好的工具,可以在出现问题时关注日志并接收电子邮件。但是这个 OSSEC 工具只是一种查看日志的自动化方式,所以没什么神奇的。
网络问题?dhcp 租约到期?
请显示 /var/log/messages 和/或 /var/log/kern.log 的相关内容,内核可能记录了一些崩溃报告或其他可以说明问题的内容。当我遇到这种无法解释的挂起时,这是由于驱动程序错误造成的,因为日志记录不是很详细,所以我无法找到确切的驱动程序。
在我的例子中,存在软锁定(内核:[XXXX] BUG:软锁定 - CPU#X)。经过一些研究,我发现了http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=556030,最后一条评论提供了一些见解和一种使日志记录更加冗长的方法。这是一个简单的内核修改,但如果您不喜欢编译自己的内核,那么这可能不是最好的选择。
只需更新内核或安装更新版本并重新启动即可解决问题。
报价:
显然,问题与导致服务器挂起的某些 python 脚本有关。我不明白他们为什么挂起服务器,但至少他们不再挂起它了。