如何排除挂起的Linux服务器

我在远程位置有几台Ubuntu Server 8.04机器。 每隔几个月左右,其中一个会停止响应,需要重新启动。 从查看我的日志文件看来,我的所有进程都运行良好,直到某个时刻一切都停止了。

我怀疑这是一个硬件问题,但我甚至不知道如何开始指出这个问题。 是否有任何诊断工具或技术用于追踪这些问题?

我知道这是一个相当普遍的问题,但我希望得到一个普遍的答案。

连接另一台机器,并configuration一个串行控制台来获取所有的内核消息。 如果这是一个内核恐慌或其他灾难性的问题,你会在那里看到它。 还build议监测温度和运行一个memtest,特别是如果控制台在轮子脱落之前显示没有任何exception。

如果可以的话, Memtest将成为第一个调用点,下一次崩溃时,请求中心插入一个控制台。 如果内核正在运行,它应该输出一些东西来屏幕。

过去我也遇到过类似的问题,结果发现是与热量有关。 改善发行量和增加一两个粉丝帮助了大部分时间。

此外,请确保您的磁盘上已启用SMART,并查看是否有其中一个最后一段时间。

你可能想要安装munin来监视它们,看看发生了什么。

使用类似于Zabbix的全面远程监控解决scheme。 监视系统资源使用情况以及操作系统可用的任何硬件统计信息(例如,风扇速度,温度等)。 这样,当你的系统下一次崩溃时,你会看到很多数据点,看看问题是什么。

通过这种方法,您可能会发现,例如,您有一个失去控制权的进程将RAM分配,将系统推入交换,并导致内存不足杀手开始通过正在运行的进程雕刻,留下机器反应迟钝。 没有监测,你不可能知道这一点。

太less的信息实际上是任何可以定义的工作。

知道如何定义“停止”响应将是一件好事。 它只是停止响应或其他服务的SSH? 任何想法,如果控制台仍在响应?

机器重新启动后重新联机后,日志文件中的任何痕迹?

无论如何,几乎没有什么select可以让你收集信息:

  • 在串口线上启用getty,如果您不能购买串口服务器,请将机器之间的串口线交叉连接。 如果一台机器无法通过networking连接,您可以尝试通过串行访问。
  • 安装监控软件,并从lmsensors,智能工具技术获取状态。
  • 发送syslogs到远程机器。