内核错误交换

内核错误交换

/var/log/syslogUbuntu 18 出了问题,我在我的文件中注意到了以下消息:

我经常遇到 问题swapkswapd0进程运行并占用大量 CPU。我该怎么做才能防止所有这些错误?

Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113350] ------------[ cut here ]------------
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113352] kernel BUG at /build/linux-hwe-uR14Ux/linux-hwe-5.3.0/mm/zswap.c:1166!
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113359] invalid opcode: 0000 [#1] SMP PTI
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113362] CPU: 1 PID: 5908 Comm: gnome-shell Tainted: P           OE     5.3.0-42-generic #34~18.04.1-Ubuntu
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113364] Hardware name: LENOVO 80X7/LNVNB161216, BIOS 4MCN33WW(V2.05) 07/19/2018
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113369] RIP: 0010:zswap_frontswap_load+0x1b0/0x1c0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113372] Code: e8 75 d5 b7 00 41 89 c7 41 83 ac 24 98 12 00 00 01 48 8b 43 28 48 8b 73 30 48 8b 38 e8 e9 c4 03 00 45 85 ff 0f 84 12 ff ff ff <0f> 0b e8 c9 6a e1 ff 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113374] RSP: 0000:ffffb6dd0332fb48 EFLAGS: 00010282
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113376] RAX: ffffffffa14bfd60 RBX: ffff966c9e6d73b8 RCX: ffff966b85e76f4a
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113377] RDX: ffff966e01154000 RSI: ffff966b85e76e80 RDI: ffff966e37cc0000
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113379] RBP: ffffb6dd0332fb88 R08: 0000000000000c98 R09: 0000000000000112
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113380] R10: ffff966b85e76fef R11: ffff966e01155000 R12: ffff966de1dd0000
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113381] R13: ffff966e2f4b2658 R14: ffff966e2f4b2650 R15: 00000000ffffffea
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113383] FS:  00007f432c805ac0(0000) GS:ffff966e39c80000(0000) knlGS:0000000000000000
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113385] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113386] CR2: 00005652fccc45e0 CR3: 0000000253542006 CR4: 00000000003606e0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113387] Call Trace:
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113392]  __frontswap_load+0x73/0xd0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113394]  swap_readpage+0x74/0x1f0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113397]  swap_cluster_readahead+0x1db/0x2b0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113400]  swapin_readahead+0x60/0x4e0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113402]  ? find_get_entry+0x58/0x160
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113404]  ? swapin_readahead+0x60/0x4e0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113406]  ? pagecache_get_page+0x2c/0x2b0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113409]  do_swap_page+0x31b/0x990
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113411]  ? do_swap_page+0x31b/0x990
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113414]  __handle_mm_fault+0x77a/0x1230
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113416]  ? __cgroup_account_cputime+0x28/0x30
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113419]  handle_mm_fault+0xcb/0x210
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113423]  __do_page_fault+0x2a1/0x4d0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113425]  do_page_fault+0x2c/0xe0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113429]  page_fault+0x34/0x40
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113431] RIP: 0033:0x7f43298735e8
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113433] Code: 70 48 83 fa 40 72 47 0f 10 06 0f 10 4e 10 0f 10 56 20 0f 10 5e 30 0f 10 64 16 f0 0f 10 6c 16 e0 0f 10 74 16 d0 0f 10 7c 16 c0 <0f> 11 07 0f 11 4f 10 0f 11 57 20 0f 11 5f 30 0f 11 64 17 f0 0f 11
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113434] RSP: 002b:00007ffecca60188 EFLAGS: 00010246
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113436] RAX: 00005652fccc45e0 RBX: 0000000000000005 RCX: 000000000000003f
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113437] RDX: 0000000000000040 RSI: 00005652f22f6cd0 RDI: 00005652fccc45e0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113439] RBP: 0000000000004d40 R08: 00005652f22f6bd0 R09: 00005652fccbf8a0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113440] R10: 0000000000000000 R11: 0000000000000000 R12: 00005652fccbf8a0
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113441] R13: 00005652f22f6bd0 R14: 0000000000000040 R15: 0000000000000000
Mar 18 19:55:14 adam-Lenovo-YOGA-720-15IKB kernel: [67157.113443] Modules linked in: btrfs xor zstd_compress raid6_pq ufs qnx4 hfsplus hfs minix ntfs msdos jfs xfs libcrc32c vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) rfcomm vmw_vsock_vmci_transport vsock vmw_vmci ccm thunderbolt hidp cmac bnep snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio nls_iso8859_1 hid_sensor_accel_3d hid_sensor_als hid_sensor_trigger industrialio_triggered_buffer kfifo_buf hid_sensor_iio_common industrialio hid_sensor_custom nvidia_uvm(OE) 8250_dw hid_multitouch wacom hid_sensor_hub mei_hdcp intel_rapl_msr x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_intel snd_intel_nhlt snd_hda_codec snd_hda_core snd_hwdep snd_pcm aesni_intel snd_seq_midi snd_seq_midi_event aes_x86_64 crypto_simd cryptd glue_helper snd_rawmidi intel_cstate intel_rapl_perf snd_seq ath10k_pci ath10k_core intel_wmi_thunderbolt wmi_bmof serio_raw ath snd_seq_device snd_timer mac80211 snd

编辑

按照@heynnema 的建议,我删除了 zswap 功能,不幸的是我的 Ubuntu 18 昨天在 21:36 之前崩溃了。

我的桌面确实很给力: 截图 Ubuntu

并且一直使用大量的交换空间:

    adam@adam-Lenovo-YOGA-720-15IKB:~$ free -h
                  total        used        free      shared  buff/cache   available
    Mem:           7.5G        5.3G        158M        1.4G        2.1G        567M
    Swap:           15G        5.2G         10G

我的屏幕冻结了,我不得不再次进行硬重启!当我下载一个 7Gb 的大文件时,它冻结了。当我下载大文件时,它经常崩溃,为了避免系统崩溃,我在下载前退出了很多应用程序。不知道为什么,可能是因为下载文件需要内存。如果我下载一个 20Gb 的文件,我需要 20Gb 的内存吗?奇怪。

我有一台笔记本电脑,所以目前无法安装新的 RAM。

我正在使用的应用程序与我在 Windows 10 上使用的相同,并且必须承认我只在 Linux 上遇到这些 RAM/SWAP 问题!

我找不到有关我的日志文件的任何信息,请查找:

编辑2

对于 Opera,我从 Ubuntu 软件中心安装了它。我暂时卸载了它并寻找 .deb 版本。但我的笔记本电脑再次崩溃,所以没有使用 Opera...

如果我使用多个浏览器,那是因为我进行了一些 PHP Web 开发,并且我使用具有不同权限的不同测试用户登录我开发的不同本地 (Nginx) 网站...我在 Windows 10 上使用相同的浏览器执行相同操作。但例如,我使用 Opera 的 VPN 轻松更改位置并使用 PHP 库/geoip 测试我的开发。

今天崩溃之后,我的交换率现在为 10。

   adam@adam-Lenovo-YOGA-720-15IKB:~$ cat /proc/sys/vm/swappiness
    10

我使用了一些非常酷的 Gnome 扩展,我确实很欣赏这个工作环境,我会尽我所能继续使用它并且不再回到 W10!

adam@adam-Lenovo-YOGA-720-15IKB:~$ ls -al ~/.local/share/gnome-shell/extensions
total 24
drwxrwxr-x 6 adam adam 4096 janv. 26 01:19 .
drwx------ 3 adam adam 4096 mars  21 15:47 ..
drwxrwxr-x 5 adam adam 4096 janv. 19 22:51 [email protected]
drwxrwxr-x 5 adam adam 4096 janv. 20 19:46 [email protected]
drwxrwxr-x 3 adam adam 4096 janv. 19 23:30 [email protected]
drwxrwxr-x 5 adam adam 4096 janv. 20 00:21 [email protected]

adam@adam-Lenovo-YOGA-720-15IKB:~$ ls -al /usr/share/gnome-shell/extensions
total 16
drwxr-xr-x 4 root root 4096 août   5  2019 .
drwxr-xr-x 6 root root 4096 janv. 19 03:32 ..
drwxr-xr-x 3 root root 4096 août   5  2019 [email protected]
drwxr-xr-x 3 root root 4096 août   5  2019 [email protected]

我的磁盘是 SSD,我想我不需要检查一些坏块?不是吗?

编辑3

adam@adam-Lenovo-YOGA-720-15IKB:~$ ls -al /var/crash
total 71348
drwxrwsrwt  2 root     whoopsie     4096 Mar 19 11:44 .
drwxr-xr-x 15 root     root         4096 Jan 20 11:34 ..
-rw-r-----  1 gdm      whoopsie  3228635 Mar 19 11:45 _usr_bin_Xwayland.121.crash
-rw-r-----  1 gdm      whoopsie 27575267 Mar 19 11:44 _usr_bin_gnome-shell.121.crash
-rw-r-----  1 adam     whoopsie 42236551 Mar 17 14:05 _usr_bin_gnome-software.1000.crash
-rw-rw-r--  1 adam     whoopsie        0 Mar 17 14:05 _usr_bin_gnome-software.1000.upload
-rw-------  1 whoopsie whoopsie        0 Mar 17 14:05 _usr_bin_gnome-software.1000.uploaded

这些文件可从以下位置获取: https://drive.google.com/open?id=1vcNtIu0W0bK5OoTnwVrQ_-BfE5uZb7Ad

编辑4

我已将 swapiness 调回 80

我已经检查过内存https://www.memtest86.com/希望它已经很久了,但它成功通过了所有 4/4 测试。

我也禁用了 Wayland WaylandEnable=false

它运行了两天,但第三天就因睡眠模式而崩溃了。

第二天我收到了一条新的 8G 内存条,但我不得不等待 torx t5 螺丝刀的送货才能打开我的笔记本电脑!我感到非常幸运,并非所有笔记本电脑都能接受新的内存条。

在此处输入图片描述

它现在已经正常工作了 3 天,没有出现任何崩溃。然而,我使用大量内存进行了大量测试,甚至从 Steam 启动了一款游戏,而我所有常用的软件都在运行……并且没有崩溃。

所以我想我可以继续使用 Ubuntu 而不需要改变我的习惯。

此时:

adam@adam-Lenovo-YOGA-720-15IKB:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G         11G        701M        932M        3.1G        2.6G
Swap:           15G        1.8G         14G

笔记: 当我只有 8G 内存时,我启动了所有常用软件,然后进行了交换,我尝试连接蓝牙键盘 (Logitech k810),但没有成功,系统日志中显示内存不足的错误消息!我退出 Firefox 以获取可用内存,然后就可以连接蓝牙键盘了……我觉得 Linux 交换不是一些虚拟化的新内存,而这正是我对交换的期望。

答案1

看起来你在 zswap 中崩溃了......

kernel BUG at /build/linux-hwe-uR14Ux/linux-hwe-5.3.0/mm/zswap.c:1166!

您的 BIOS 已更新至版本...

Hardware name: LENOVO 80X7/LNVNB161216, BIOS 4MCN33WW(V2.05) 07/19/2018

您已按照以下文章启用了 zswap这个网页。

逆转你的步骤并禁用 zswap...

sudo -H gedit /etc/default/grub# 编辑此文件

消除zswap.enabled=1

sudo update-grub# 更新 GRUB

reboot# 重启计算机

更新#1:

我查看了你的日志文件。有多个问题导致崩溃。我们用 zswap 解决了一个问题。你至少还有两三个问题。

  • 首先,对于 8G RAM,您打开了太多应用程序/窗口。您打开了三个占用大量 RAM 的应用程序,分别是 Firefox、Opera 和 Chrome。绝对没有理由这么做。这也解释了为什么您的交换空间使用率很高。有些应用程序甚至会打开三个窗口。需要关闭最近未使用的应用程序/窗口,或添加更多 RAM。

  • 您的 Opera snap 版本正在删除您的日志文件。卸载 snap 版本并安装常规 .deb 版本。

  • 您是否将 vm.swappiness 重新设置为 10?还是仍为 80(这也会导致交换使用率较高)。

  • 您收到很多 I/O 错误,但这些错误来自 gnome-shell 和 sqlite。很奇怪。GNOME Shell 错误通常是 GNOME Shell 扩展存在缺陷。或者您的 sql 文件损坏了。

给我看看:

ls -al ~/.local/share/gnome-shell/extensions

ls -al /usr/share/gnome-shell/extensions

更新 #2:

  • 这是无法逃避的,你需要更多 RAM. 成对添加 RAM 以获得内存交叉存取的速度优势。

  • 只有 8G RAM,设置 vm.swappiness=10 是错了错了错了. 将其恢复为默认值 60,或者像之前一样设置为 80。

  • 为了确保你的 8G RAM 正常工作,请访问https://www.memtest86.com/并下载/运行他们的免费记忆测试来测试你的记忆力。至少完成一次所有 4/4 测试以确认记忆力良好。这可能需要几个小时才能完成。

  • Opera 可以从以下网址下载https://www.opera.com,或者如果您创建/etc/apt/sources.list.d/opera.list并放入deb http://deb.opera.com/opera/ stable non-free #Opera它,您将能够获得自动更新,和/或使用 Synaptic 来安装它。

  • 尽管我知道你不愿意这样做,但这是必要的,至少对于测试目的而言... 转到https://extensions.gnome.org/local/并禁用这四个扩展...(并且您必须重新启动 GNOME Shell,或者重新启动系统)并查看系统是否变得更稳定...真的...这样做...您有太多 GNOME Shell 错误...并且如果系统更稳定,则仅一次重新启用一个,直到您确定问题扩展...我看到至少两个候选人...


[email protected]
[email protected]
[email protected]
[email protected]

更新 #3:

我看到 Wayland 崩溃了/var/crash。我们想尝试在没有 Wayland 的情况下运行。

编辑/etc/gdm3/custom.conf并...

改变:

#WaylandEnable=false

到:

WaylandEnable=false

然后重新启动。

另外,在登录时,选择您的用户名,然后单击出现的齿轮图标,并确保您选择了Ubuntu,而不是Ubuntu with Wayland

更新 #4:

将 RAM 增加到 16G 并设置 vm.swappiness=60。

相关内容