ToX*_* 82 5 gnome cpu top strace
我在旧的(ish)笔记本电脑上运行 ubuntu 18.04,它是带有升级内存(16GB)和 SSD 的 hp dv7 6180sl。它很旧,但对于我的工作来说仍然足够快。
由于有几个 ubuntu 版本(我总是在每个版本中完全重新安装,所以我不是来自旧版本)看起来 cpu 从来没有真正空闲过,因此粉丝们一直在工作。今天我决定找出正在使用我的cpu的东西。
我在这里和谷歌上阅读了很多答案,但没有什么能真正解决我的问题。顶是这样说的:
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
Run Code Online (Sandbox Code Playgroud)
以 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
Run Code Online (Sandbox Code Playgroud)
这是我应该担心的事情吗?
小智 3
自从安装 18.04 以来,我在 gnome-shell 上一直有类似的高 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
Run Code Online (Sandbox Code Playgroud)
这很糟糕,我的所有程序都以大约 1 秒的间隔出现口吃。它是如此一致,我已经习惯了补偿它。视频播放卡顿、游戏卡顿、火狐卡顿,相当烦人。不知道从哪里开始修复它,尽管杀死 gnome-shell 并重新启动它至少可以工作一段时间——仍然有错误,但响应更快。
左侧的侧栏经常也会出现重叠图标等问题,我怀疑 gnome-shell 会出现一些累积错误,并且在某些时候它会花费大量 CPU 时间来尝试解决某些配置或边缘之间的严重交互矛盾案子什么的。我想现在我只希望 18.10 能好一点。
| 归档时间: |
|
| 查看次数: |
3504 次 |
| 最近记录: |