如何诊断 Linux 上不频繁的计算机死机?

如何诊断 Linux 上不频繁的计算机死机?

在过去的几个月里,我的台式电脑偶尔会死机。如果发生这种情况,屏幕上的内容(包括鼠标)都会冻结,我无法使用键盘重新启动或切换到虚拟控制台,并且 SysRq 序列不起作用 - 唯一的选择是通过机箱上的按钮进行硬重置。

我主要使用 Debian 11.6,偶尔使用 Windows 11 玩游戏。我玩游戏时从未遇到过卡顿,但这可能只是因为我玩游戏的时间很少。

不一致的线索:

  • 夏季开始出现结冰现象,当时这里出现了热浪(> 40 °C)。所以我认为这是过热问题,的确,到了秋季和冬季,结冰现象发生得更少了——但并没有完全停止。以前每隔 1 或 2 天就会发生一次,现在可能每周发生一次。

  • 我观看全屏视频时经常会出现冻结现象,有时(但并非总是)会出现彩色图案,就好像视频内存中写入了随机数据一样。因此,我认为这可能是视频卡的问题。(我安装了 VDPAU,因此程序可能使用硬件解码。)但是,在正常使用桌面时也会发生冻结现象。

诊断:

  • 我查看了重启后的系统日志,但没有相关信息。最后的条目通常是几分钟前,与标准系统事件有关。但这可能只是意味着最后的消息由于冻结而丢失了。

  • dd if=/dev/zero of=/dev/null我使用了基于以下的CPU 负载测试计算机异常死机,有 7 个并行作业(CPU 为 4 核,带超线程)。htop显示所有 8 个虚拟核心都达到了 100%,但这并没有导致约 10 分钟后冻结。

  • 我安装了和memtest86memtest86+并从启动菜单启动了内存测试。使用这两个版本,计算机在大约一秒钟后冻结,但没有错误消息。请参阅下面的屏幕截图。

    这是否意味着我的内存有问题?我本以为我会收到一条错误消息。此外,我经常操作大型数据文件,但从未注意到文件数据损坏。我偶尔也会执行科学计算,这些计算往往会填满主内存,而且在此期间也从未遇到过冻结。(然而,由于过度交换,我经常导致系统崩溃。)

我发现,唯一能够持续快速地触发冻结的方法是记忆测试。

问题:

  • 如果确实是内存故障,我如何确定需要更换四个内存模块中的哪一个?还是我应该全部更换?

  • 我读过几个类似的问题,说电脑死机可能是由于电源故障造成的。大约一年半前,我更换了电源,因为旧的电源坏了。我原本打算使用完全相同的型号,但该型号已停产,所以我使用了规格稍高一点的型号。我利用这个机会彻底清洁了机箱内部。

  • 我该怎么做才能从软件方面更好地诊断此问题?特别是,如何才能保留直到冻结的日志消息?Debian 11 使用 systemd 日志记录 - 是否有方法可以将消息发送到服务器或另外发送消息?

系统规格:

  • 华硕电脑公司 P8Z77-M Rev 1.xx,带 SMBIOS 2.7
  • American Megatrends Inc. BIOS 版本 1806
  • 安静!直通电源 11 750W 750W ATX 黑色
  • Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
  • 256 KiB L1 缓存、1 MiB L2 缓存、8 MiB L3 缓存(L3 似乎已被禁用,我不记得这样做过)
  • Intel 公司 7 系列/C216 芯片组
  • 4 个模块 à 4 GB Transcend JM1333KLN-8GK DIMM DDR3 同步 1333 MHz (0.8 ns)
  • NVIDIA 公司 GP106 [GeForce GTX 1060 6GB](rev a1)
  • SAMSUNG SSD 830 系列和 WDC WD60EFRX,均无 SMART 错误

这台电脑已经用了大约 10 年了,所以买一台新的也没什么大不了的。在此期间,我做了几次小升级(增加内存、稍好一点的 CPU、更好的显卡),但这些升级都不是最近才发生的,不足以解释电脑死机的原因。

死机后内存测试屏幕照片:

Memtest86 Memtest86+

第二个画面中,红色的“+”在冻结之后继续闪烁,这表示显卡仍在运转。


补充:

回应@Appleoddity 的评论,我取出了内存模块。它们牢牢地固定在插槽中,包括触点在内都很干净。当我重新插入它们时,我注意到有时它们看起来插入了,但实际上并没有正确插入,用力推就可以修复。但当这种情况发生时,我不会收到内存错误,但计算机根本无法启动。

为了防止只有一个模块出现问题,我一次放入一个模块并运行内存测试。但是,对于每个模块,所有测试都通过了,没有错误消息,也没有冻结。

然后我把它们成对放入。我不确定我是否完成了所有 6 种组合,但在我尝试的所有组合中,计算机在记忆测试开始几秒钟后就冻结了。

最后,我更新了主板 BIOS(最新版本,2015-12-18 的 2203),希望它能以某种方式解决问题,或者至少提供更好的诊断,但没有成功。我也试过减少在 BIOS 设置中调整内存时钟速度,但收到“超频”失败的错误消息。

我还有什么可以尝试的吗?我是否应该直接购买全新的内存模块?

相关内容