gnome-shell CPU 使用率过高/tracePersistentRoots 运行缓慢

gnome-shell CPU 使用率过高/tracePersistentRoots 运行缓慢

在过去的几天里,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,这与通知过载一致。

如果有办法更清楚地识别这种情况就太好了,但至少现在我知道要注意这个问题。

希望这对其他人有帮助。

还要注意,关闭“回到过去”中的“启用通知”设置没有帮助。

相关内容