如何诊断 Linux 硬崩溃?

如何诊断 Linux 硬崩溃?

我有一台自制的 Linux 服务器(Ubuntu 12.04.5 LTS、Intel i5-3570K、8GB RAM),主要用作邮件和 Web 服务器。它只在控制台模式下运行(没有 GUI)。我会不时通过 SSH 连接到它,几乎从不从控制台操作它。它往往可以正常工作很多天,甚至几周,但有时会毫无预警地严重崩溃。当我说“严重崩溃”时,我的意思是 PC 突然变得完全没有响应:

  • 它不留下任何日志条目
  • 它不会发出“哎呀”、内核崩溃消息或核心转储
  • 屏幕上不显示任何消息。
  • 它不响应任何键盘或鼠标输入(NumLock 灯对该键也没有反应)
  • 无法通过 SSH 访问
  • 机壳的复位开关无法工作

唯一的解决办法是按住机箱电源按钮直到其关闭,然后重新启动。

当然,这说明存在“硬件问题”,但哪个组件最有可能?Memtest86+ 没有显示任何错误,因此似乎只能归咎于三大问题 - 主板、CPU 或电源。(PC 没有超频,传感器最后的消息(崩溃前)表明没有过热或风扇问题)

  1. 从统计上看,这些组件中哪一个最有可能存在问题?

  2. 我把最后一个标准加粗了,因为我觉得这似乎不寻常。通常,即使发生严重崩溃,PC 仍可以通过机箱的重置开关重新启动。这是否意味着 PSU 或主板存在问题?(按住电源开关 4-5 秒钟关闭 PC仍然有效)

  3. 有没有办法对它们进行测试,而不必简​​单地一次订购一个新部件,直到我确信(经过几周没有崩溃)问题已得到解决?

感谢任何能提供帮助的人。

答案1

我有点惊讶没有人建议使用SysRq魔法钥匙。

首先,应该使用它来强制重启,而不是电源开关,因为这会让程序有机会将未保存的数据保存到磁盘;如果不这样做,重启时可能会出现相当大的问题(更不用说等待常规检查的无聊崩溃fsck)。具体操作如下:同时按住AltSysRq,输入,间隔几秒钟r e i s u b(英语中著名的助记符是养大象真是无聊透顶, 我更喜欢跑腿实在太无聊了,如果可以的话,尝试想出一个更好的)。

除此之外,当系统冻结时,使用Alt++ (其中 XSysRqX字母)允许您运行一些诊断程序:例如,X=d显示所有当前锁,这可能有助于诊断软件问题;X=j解冻冻结的文件系统;X=ll是 ell)显示堆栈回溯;X=t向控制台输出当前任务列表;X=w显示被阻止的任务列表。

您可以找到更多代码在维基百科上

虽然我不能说这将是决定性的一步(有些情况下甚至这一步也会失败),但这是调查的下一步,它将有助于指出软件或硬件问题,并限制可能的罪魁祸首的范围。

答案2

1:你的 Ubuntu 稳定吗? 您是否下载了稳定版本的 ubuntu?如果没有,请尝试降级到最新的稳定版本。

2:您是否在另一台虚拟/物理机上尝试过? 这很可能是一个脚本错误,在虚拟机(如 Virtual Box)中测试它,如果你还没有尝试过这些步骤,那么这更有可能防止任何硬崩溃,它还会为你提供一个可以调试和监控操作系统的环境

3:内存故障? 好吧,所以它不太可能是本地 SSD/HDD/SSHD,因为 Linux 操作系统已加载到 RAM 中,如果无法联系内核,它会发出警告,然后它就会崩溃。但是,如果 RAM 在哪里锁定,因为它的有故障/有缺陷操作系统将完全冻结,无法发布(甚至无法意识到)任何错误,这可能解释了没有日志的原因,然而,很有可能是其他原因

4:查看论坛 好吧,我不是最有效的Linux用户,还有很多我不知道的地方,我遇到过类似的硬件和软件问题,但我真的不知道你的自制服务器是做什么的,所以很难找出其中的缺陷,我会浏览论坛

答案3

您能做的最好的事情就是查看锁定时间附近的日志,看看是否可以将锁定与任何类型的系统事件关联起来。这是一件很难的事情,您可能无法通过这种方式找到任何可能直接导致锁定的事情。

诊断硬件问题的一些提示:

最容易消除的是固件问题/设置:

  • 确保您的系统具有制造商提供的最新固件/BIOS 更新。

  • 确保所有存储设备也都更新至最新固件。

  • 尝试禁用固件/BIOS 中的任何 CPU 或其他电源管理选项。

  • 如果您不使用虚拟化,请尝试在固件中禁用虚拟化。

即使内存测试没有显示 RAM 问题,也会导致硬死机。这可能是非常间歇性的。实际服务器具有 ECC RAM,可防止罕见/瞬时 RAM 错误导致问题,但如果这是一台非服务器 PC,则没有此功能。如果可以,请尝试更换 RAM。

墙上电源的电源问题可能会导致此类问题。如果您真的要运行家庭服务器,则应该配备备用电池,以过滤瞬时电源问题。

如果问题仍然存在,请尝试更换电源或使用其他电源。

随后,假设主板有问题并考虑更换。

相关内容