我正在使用带有默认 Ubuntu 桌面(未添加扩展)的 Ubuntu 17.10,并且我的计算机有 4 GB 的 RAM。我注意到每次使用 Gnome Shell 时,无论是通过Super按键Super+ A、Super+Tab还是单击顶部栏上的元素,gnome-shell
进程的 RAM 使用量都会增加几 MB。这似乎不是什么大问题,但经过几个小时的工作后,gnome-shell
使用量攀升至 1.5 GB 以上,总 RAM 使用量接近 4 GB。然后交换开始被填满,使我的计算机变得非常慢。
有没有其他人注意到同样的行为?为什么gnome-shell
内存不断增加?除了注销之外,有没有办法清除 gnome-shell 内存使用情况?
几年后,在问题被关闭并重新打开后,我对问题所在有了一个很好的了解。所以我在回答我自己的问题。
这个问题是由于臭名昭著的GNOME Shell 内存泄漏,自 Ubuntu 17.10 之前就一直困扰着 GNOME Shell。该问题的错误报告可追溯到 2017 年 3 月 3 日,但该问题可能在此之前就已经存在。
一位 GNOME 开发人员(Georges Basile Stavracas Neto)在 2018 年继续寻找泄漏的原因,发现它与垃圾收集有关。该修复程序于当年晚些时候针对 Ubuntu 18.04 和 17.10 发布。
自修复程序发布以来,我没有观察到任何更严重的内存泄漏。虽然其他用户已经观察到一些主要是轻微的内存泄漏,正如上面链接的错误报告中所见,但它们归因于不同的原因。
在 Xorg 会话中,通过按Alt+重新启动 GNOME Shell F2,输入
r
,然后按Enter足以清除泄漏的内存并将计算机恢复到可用状态。在 Xorg 上重新启动 GNOME Shell 仍然是解决大量问题的好方法。然而,以类似的方式重新启动 Wayland 会话是不可能的(现在仍然不可能),因此当时解决 Wayland 问题的唯一方法是注销并重新登录。