问题
如何测试硬件组件以找出哪个有故障?
细节
我有一台旧机器,使用 samba 运行 debian 作为文件服务器。前几天我无法登录我的文件服务器。当我查看 Debian 服务器上的屏幕时,我看到的是:
它说这是一个硬件错误,看起来像是一个坏的CPU。然而,我不想跑出去买一个新的CPU,因为我真的不知道我在说什么。
这是我所做的:
- 我使用 memtest 86+ 连续测试了 66 个小时的内存。通过了65次,发现0个错误。所以我认为记性不好是不可能的。不过,我有点好奇,如果系统出现其他错误,为什么在这 66 小时内它没有崩溃。
- 我注意到它这么说
java Tainted
,所以我认为这可能是一个java问题。我禁用了 CrashPlan Backup 服务,因为它使用 java。服务器连续 4 天运行良好。 (通常每 15-30 分钟就会崩溃一次)在我关闭崩溃计划期间,我有两台计算机连接到服务器,获取 50 GB 的高清视频,对其进行编码并将其放回服务器硬盘上。没有任何问题。然后一天后又崩溃了。
既然提到了这一点,我是否应该假设这是一个 CPU 问题?
如何测试硬件组件以找出哪个有故障?
答案1
如果您的硬件来自大型供应商,例如惠普、戴尔等,他们可能有适合您需求的特定工具。我曾经与惠普合作,他们已经拥有报告不良硬件的工具。
如果情况并非如此,那么情况会更棘手(根据我的经验),您已经开始很好地测试内存,因为它曾经是一个常见的失败点。
现在,如果您对 CPU 存在疑问,您可以将它们暴露于一项密集型工作,例如编译内核或任何其他大型源(如 libreoffice、xorg 等)...如果您有多个 CPU,则可以使用 CPU 亲和力。
另外,错误消息建议您运行“mcelog --ascii”,您可以执行此操作并尝试理解这些消息,请阅读下面的两个链接,我希望它们能帮助您解决硬件问题:
http://www.gentoo.org/doc/en/articles/hardware-stability-p1.xml
答案2
任何机器上的硬件问题都很难追踪,尤其是较旧的系统。
MCE 或机器检查异常是检测到硬件错误时由 CPU 本身生成的非人类可读错误代码。这可能包括 RAM、处理器缓存或系统总线上的任何设备的错误。通常只能通过反复试验才能找到旧处理器上的问题(如果幸运的话,请记住一个测试)。
一些较新的处理器提供了更容易理解的 MCE,但看起来您的处理器可能是旧的 AMD。 Mcelog 是一个 Linux 守护进程,可以解码现代 x86 处理器的 MCE,这可能是您了解 MCE 的唯一希望。
考虑到您已经投入的时间,您最好的选择是将主板/CPU/内存替换为同样旧且便宜但仍然可以使用的设置。 :)