Gnome Shell 和高 CPU 使用率

Gnome Shell 和高 CPU 使用率

我在一台较旧的笔记本电脑上运行 ubuntu 18.04,它是一台 hp dv7 6180sl,配有升级的内存(16gb)和 SSD。它虽然旧了点,但速度仍然足够快,可以满足我的工作需要。

从几个 ubuntu 版本开始(每次发布时我都会重新安装,所以我不是从旧版本开始的),看起来 CPU 从未真正空闲过,因此风扇一直在工作。今天我决定找出是什么在使用我的 CPU。

我在这里和谷歌上读了很多答案,但没有一个能真正解决我的问题。Top 说:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
5501 tox       20   0 3911436 324668  68984 S  12,5  4,0  30:04.86 gnome-shell 

获取 gnome-shell 的 PID 后,我尝试进行 strace 以查看底层发生的情况,我发现有一个recvmsg系统调用产生大量错误,耗费了近 30% 的时间(这几乎是一分钟之后):

strace: Process 5501 attached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
29.71    0.100941           2     46612     39214 recvmsg
24.81    0.084290           5     17842           poll
22.21    0.075445           3     21796           ioctl
8.92    0.030304           4      7269           writev
3.72    0.012652           8      1583        53 futex
3.17    0.010771           2      5180           getpid
1.58    0.005380           1      3874           mprotect
1.58    0.005357           3      2003           write
1.46    0.004969           3      1958           read
0.51    0.001727           8       215         2 openat
0.48    0.001634           3       501           close
0.45    0.001533           5       288           timerfd_create
0.32    0.001098           4       288           timerfd_settime
0.32    0.001072           6       183           mmap
0.26    0.000887           7       132       114 stat
0.25    0.000838           2       426           fstat
0.11    0.000370           2       213           fcntl
0.08    0.000267          10        26           munmap
0.06    0.000191           1       146           getrusage
0.00    0.000001           0         4         1 recvfrom
0.00    0.000001           1         2           uname
0.00    0.000001           1         1           restart_syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.339729                110542     39384 total

我有必要担心这个吗?

答案1

自从安装 18.04 以来,我一直遇到类似的持续高 CPU 负载,原因不明。我认为它只是掩盖了 Firefox 视频渲染等底层的东西,但即使关闭所有程序,甚至不移动鼠标,它也不会真正降到接近零的水平。

我尝试了相同的 strace 并得到了类似的结果:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 39.61    0.240174           3     87585     76642 recvmsg
 25.36    0.153778           6     27384           poll
  9.07    0.054990           3     17502           ioctl
  8.98    0.054434           3     18079           write
  7.98    0.048402           5      9702           writev
  3.29    0.019926           3      6640           read
  2.20    0.013369           1      8942           getpid
  1.32    0.008014           6      1352        59 futex
  0.91    0.005530           2      2634           mprotect
  0.23    0.001413          20        72           mmap
  0.21    0.001299           4       353           close
  0.21    0.001272           5       240           timerfd_create
  0.17    0.001043          10       101         2 openat
  0.17    0.001010           4       240           timerfd_settime
  0.09    0.000518           1       420       360 stat
  0.07    0.000432           2       198           fstat
  0.06    0.000374           9        41           munmap
  0.03    0.000192           2       124           getrusage
  0.03    0.000184           2        99           fcntl
  0.00    0.000006           2         4           recvfrom
  0.00    0.000004           1         7           sendmsg
  0.00    0.000004           1         7           ftruncate
  0.00    0.000004           1         7           memfd_create
  0.00    0.000003           2         2           uname
  0.00    0.000001           0         7           lseek
  0.00    0.000000           0         1           restart_syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.606376                181743     77063 total

这很糟糕,我所有程序都会每隔 1 秒就会出现一次卡顿。这种情况如此频繁,我已经习惯了弥补它。视频播放卡顿、游戏卡顿、火狐浏览器卡顿,这很烦人。不知道从哪里开始修复它,虽然关闭 gnome-shell 并重新启动它至少可以工作一段时间——仍然有错误,但响应更快。

左侧边栏也经常出现图标重叠等问题,我怀疑 gnome-shell 出现了一些累积错误,并且在某些时候它花费了大量 CPU 时间来尝试解决某些配置或极端情况之间严重交互的矛盾。我想现在我只希望 18.10 能有所改善。

相关内容