我非常喜欢 gnome-shell 扩展,除了跟踪高 CPU 使用率的问题。
我运行了很多与服务器管理相关的后台脚本,因此不断地登录/退出以查找哪个 shell 扩展突然开始消耗大量 CPU很不方便。
我的问题:gnome-shell 经常消耗~100%...我可以使用 cpulimit 来暂时控制它,但 av 播放变得不流畅。
有谁知道更有效的方法来定位有问题的扩展?
谢谢
答案1
测试新启用的 gnome 扩展的行为以及它们如何影响您的 CPU 使用率无需注销,您可以运行一个新的 gnome-shell 嵌套(在一个窗口中)像这样:
dbus-run-session gnome-shell --nested
您可以使用环境变量设置窗口大小,MUTTER_DEBUG_DUMMY_MODE_SPECS
如下所示(例如窗口大小 1636x800):
MUTTER_DEBUG_DUMMY_MODE_SPECS=1636x800
像这样使用它:
MUTTER_DEBUG_DUMMY_MODE_SPECS=1636x800 dbus-run-session gnome-shell --nested
更多信息请访问man gnome-shell
和man dbus-run-session
该会话的输出也将打印在父终端窗口中以供跟踪/调试。
另一方面(但更先进一些), 您可以使用strace
跟踪正在运行的进程正在使用哪些系统调用/信号,gnome-shell
例如打印10 秒总结如下:
for i in $(pgrep -f "gnome-shell")
do
echo "Tracing process: $i"
sudo timeout 10 strace -c -p "$i" # administrator privileged account needed for strace to attache to running services
done
您还可以使用其他方法附加到正在运行的进程并进行调试...其中一些方法在这个答案。