在过去的几天里,gnome-shell
它的表现开始变得非常糟糕。用户界面变得非常慢,最终几乎无法使用,点击和响应之间有几秒钟的延迟。
这些症状不会立即出现,但会在几分钟内出现。终止进程或重新启动进程(使用 ALT-F2 并输入r
),使用率(通常)会恢复 - 至少恢复到 UI 其余部分再次可用的程度。但这不会持续很长时间 - 可能只有几分钟。
从顶部看,该进程的内存使用率很高并且持续增长 - 超过 1gb RES 和 5gb VIRT。
使用 sysprof,以下内容使用率较高(采样约 30 秒):
- 在文件 /usr/lib/x86_64-linux-gnu/libmozjs-68.so.68.6.0 (80%) (475,502 次点击)
JSRuntime::tracePersistentRoots(JSTracer*)
- 在文件 /usr/lib/x86_64-linux-gnu/libgjs.so.0.0.0 (10%) (48,068) 中
请注意,libgjs 没有单个较大的调用,尽管tracePersistentRoots
其使用率接近 0.55%。
所有 gnome 扩展应该已禁用。
这是 Ubuntu 20.04。Gnome Shell 版本 3.36.9-0ubuntu0.20.04.2。
任何能帮助追踪此事的帮助都将不胜感激。
答案1
我追踪到原因是一个发送垃圾通知的进程。在这种情况下,它“回到过去”反复抱怨目标磁盘空间不足。
由于“请勿打扰”已开启,因此我没有看到通知。切换到 XFCE 几个小时后,通知开始弹出,并清晰可见。返回 Gnome 并启动/停止备份后,问题很容易重现。
此外,点击时钟查看通知列表会锁定 UI,这与通知过载一致。
如果有办法更清楚地识别这种情况就太好了,但至少现在我知道要注意这个问题。
希望这对其他人有帮助。
还要注意,关闭“回到过去”中的“启用通知”设置没有帮助。