Gnome Shell и высокая загрузка процессора
Я использую Ubuntu 18.04 на старом (ish) ноутбуке, это hp dv7 6180sl с обновленным ram (16 Гб) и SSD. Он старый, но все еще достаточно быстрый для моей работы.
Поскольку несколько версий Ubuntu (я всегда делаю полную переустановку при каждом выпуске, так что я не перехожу к более старой версии), похоже, что процессор никогда не простаивает, поэтому вентиляторы всегда работают. Сегодня я решил выяснить, что использует мой процессор.
Я прочитал много ответов здесь и в Google, но ничего не решило мою проблему. Топ говорит об этом:
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
Взяв PID gnome-shell, я попытался сделать ремешок, чтобы посмотреть, что происходит под капотом, и увидел, что есть 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 у меня была такая же постоянная высокая загрузка ЦП на gnome-shell без явной причины. Я подумал, что это просто скрывает что-то под капотом, например, рендеринг видео Firefox, но он также не падает почти до нуля даже при закрытой каждой программе и даже без перемещения мыши.
Я попробовал ту же самую стрейс и получил похожие результаты:
% 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 секунды во всех моих программах. Он настолько последовательный, что я привык его компенсировать. Воспроизведение видео заикается, игры заикаются, Firefox заикается, это довольно раздражает. Не знаю, с чего начать его исправление, хотя уничтожение gnome-shell и его перезапуск хотя бы какое-то время работает - все еще с ошибками, но более отзывчивым.
Боковая панель слева часто также глючит с перекрывающимися значками и тому подобным, я подозреваю, что есть некоторые кумулятивные ошибки, в которые попадает gnome-shell, и что в какой-то момент она тратит много времени на ЦП, пытаясь разрешить плохо взаимодействующие противоречия между некоторой конфигурацией или краем случай или что-то. Думаю, на данный момент я просто надеюсь, что 18.10 лучше.