排除常见崩溃故障(Chrome、Slack 等)

排除常见崩溃故障(Chrome、Slack 等)

我的台式机运行的是 Ubuntu 20.04。在过去的几个月里,我注意到了很多奇怪的行为(至少如此),我正在尝试找出如何排除故障。

该系统配备 32 GB 内存、AMD Ryzen 5900X CPU、MSI MAG B550 Tomahawk MD 和几个附加的 SSD。

症状如下:

  • 浏览器标签页总是崩溃。每隔 15 分钟左右,我打开的一个标签页(通常有 20-30 个)就会崩溃(Chrome 中显示“Aw Snap!”,Firefox 和 Chromium 中显示类似消息)。
  • Slack 会间歇性崩溃。每天大约有 1-2 次,它会挂起约一分钟,然后死机。
  • 我的虚拟机会损坏。我通常一次打开 1-3 个虚拟机,大约每月一次,我的虚拟机会开始抱怨文件系统只读。我会重新启动,它会启动到 initramfs,然后在磁盘上运行 fsck 通常可以修复它。

我的直觉是内存可能出了问题,但我不知道如何排除故障。有没有日志可以帮我找出 Chrome 一直崩溃的原因?

提前致谢!

按照@heynnema 的要求进行编辑添加:

david@jawad:~$ ls -lah /var/crash/
total 240M
drwxrwsrwt  2 root     whoopsie 4.0K Mar 22 10:43 .
drwxr-xr-x 15 root     root     4.0K Aug 31  2021 ..
-rw-r-----  1 david     whoopsie  35M Mar 22 01:13 _opt_google_chrome_chrome.1000.crash
-rw-r-----  1 david     whoopsie  27M Mar 22 10:43 _usr_bin_python3.8.1000.crash
-rw-r-----  1 david     whoopsie  60M Mar 15 15:51 _usr_lib_insync_PySide2_Qt_libexec_QtWebEngineProcess.1000.crash
-rw-r--r--  1 david     whoopsie    0 Mar 15 15:51 _usr_lib_insync_PySide2_Qt_libexec_QtWebEngineProcess.1000.upload
-rw-------  1 whoopsie whoopsie   37 Mar 15 15:51 _usr_lib_insync_PySide2_Qt_libexec_QtWebEngineProcess.1000.uploaded
-rw-r-----  1 david     whoopsie  98M Mar 22 07:28 _usr_lib_slack_slack.1000.crash
-rw-r-----  1 david     whoopsie  22M Mar 17 09:45 _usr_share_typora_Typora.1000.crash

也将获得 memtest。

根据要求进行下一步编辑:

# lshw -C memory
  *-firmware                
       description: BIOS
       vendor: American Megatrends International, LLC.
       physical id: 0
       version: A.60
       date: 05/12/2021
       size: 64KiB
       capacity: 32MiB
       capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb biosbootspecification uefi
  *-memory
       description: System Memory
       physical id: 10
       slot: System board or motherboard
       size: 32GiB
     *-bank:0
          description: 2667 MHz (0.4 ns) [empty]
          product: Unknown
          vendor: Unknown
          physical id: 0
          serial: Unknown
          slot: DIMM 0
          clock: 2667MHz (0.4ns)
     *-bank:1
          description: DIMM DDR4 Synchronous Unbuffered (Unregistered) 2667 MHz (0.4 ns)
          product: F4-3200C16-16GVK
          vendor: Unknown
          physical id: 1
          serial: 00000000
          slot: DIMM 1
          size: 16GiB
          width: 64 bits
          clock: 2667MHz (0.4ns)
     *-bank:2
          description: 2667 MHz (0.4 ns) [empty]
          product: Unknown
          vendor: Unknown
          physical id: 2
          serial: Unknown
          slot: DIMM 0
          clock: 2667MHz (0.4ns)
     *-bank:3
          description: DIMM DDR4 Synchronous Unbuffered (Unregistered) 2667 MHz (0.4 ns)
          product: F4-3200C16-16GVK
          vendor: Unknown
          physical id: 3
          serial: 00000000
          slot: DIMM 1
          size: 16GiB
          width: 64 bits
          clock: 2667MHz (0.4ns)
  *-cache:0
       description: L1 cache
       physical id: 13
       slot: L1 - Cache
       size: 768KiB
       capacity: 768KiB
       clock: 1GHz (1.0ns)
       capabilities: pipeline-burst internal write-back unified
       configuration: level=1
  *-cache:1
       description: L2 cache
       physical id: 14
       slot: L2 - Cache
       size: 6MiB
       capacity: 6MiB
       clock: 1GHz (1.0ns)
       capabilities: pipeline-burst internal write-back unified
       configuration: level=2
  *-cache:2
       description: L3 cache
       physical id: 15
       slot: L3 - Cache
       size: 64MiB
       capacity: 64MiB
       clock: 1GHz (1.0ns)
       capabilities: pipeline-burst internal write-back unified
       configuration: level=3

答案1

/var/crash 中有很多崩溃日志。

Ryzen 处理器对 RAM 的要求非常严格。转到https://memtest86.com并免费下载/运行它们memtest来测试你的记忆力。至少完成一次所有 4/4 测试以确认记忆力良好。这可能需要几个小时才能完成。

更新#1:

memtest失败。请告诉我sudo lshw -C memory

更新 #2:

您有两条 16G DIMM 内存。首先,关闭计算机,然后移除并重新插入每条 DIMM,并重新运行memtest。如果通过,那么您可能已经解决了问题。

如果失败,请移除一个 16G DIMM 并重新运行memtest。如果失败,则该 DIMM可能有缺陷。

无论哪种情况,请移除该 DIMM 并重新插入另一个 DIMM 并重新运行memtest

记录下哪个 DIMM 通过了,哪个 DIMM 发生故障很重要。报告结果。

更新 #3:

memtest个别 DIMM 出现故障。怀疑是 RAM 兼容性问题,但首先我们需要更新 BIOS 并重新测试memtest。获取 BIOS 更新这里

笔记:确认我拥有您主板(MSI MAG B550 Tomahawk MD)的正确网页。

笔记:更新 BIOS 之前请做好备份。

更新 #4:

您的内存 DIMM(F4-3200C16-16GVK)未出现在显示的内存兼容性列表中这里

更新 #5:

查看用户手册的第 13 页和第 15 页这里并确认 DIMM 插槽 A2 首先被填充,然后是 B2,并且使用完全相同规格的 DIMM。

更新 #6:

https://www.crucial.com/了解正确规格的 DIMM。请参阅https://www.crucial.com/compatible-upgrade-for/msi-%28micro-star%29/mag-b550-tomahawk

更新 #7:

确认 CPU 和 RAM 没有超频。如果超频,请将其恢复为默认时钟,然后使用 重新测试memtest

更新 #8:

更换了 RAM。现在一切正常。

答案2

我遇到了同样的问题,我尝试了这个并且它对我有用:

Ubuntu 22.04 LTS 引入了 systemd-oomd,这是一个用户空间内存不足杀手,旨在“在内核空间发生 OOM 之前采取纠正措施”。当它检测到内存压力有点太大时,它会进行干预以确保系统能够应对,并且(大多数)事情都能继续运行。希望它能帮到你。

大多数systemd服务都可以通过systemctl实用程序进行管理。在本例中,我们想要禁用该systemd-oomd服务。可以使用以下命令完成此操作:

$ systemctl disable --now systemd-oomd

您应该会看到类似的内容(取决于您的操作系统):

$ systemctl disable --now systemd-oomd
Removed /etc/systemd/system/multi-user.target.wants/systemd-oomd.service.
Removed /etc/systemd/system/dbus-org.freedesktop.oom1.service.

然后,您可以使用以下命令验证该服务是否已被禁用:

$ systemctl is-enabled systemd-oomd

然后你应该看到:

$ systemctl is-enabled systemd-oomd
disabled

但是,其他服务可能会尝试重新启动该systemd-oomd服务。为了防止这种情况,您可以“屏蔽”该服务。例如:

$ systemctl mask systemd-oomd
Created symlink /etc/systemd/system/systemd-oomd.service → /dev/null.

然后systemctl is-enabled现在应该报告:

$ systemctl is-enabled systemd-oomd
masked

man systemctl参阅更多详细信息;特别要注意有关systemd服务屏蔽的注意事项。

如何在 Ubuntu 22.04 中禁用 systemd OOM 进程终止程序?

相关内容