Як знайти причину високого використання процесора gnome-shell?


13

Я на Linux Fedora 23, і нещодавно я помітив, що мій gnome-shellпроцес постійно використовує 100% одного процесора (повідомляється htop, жодних видимих ​​програм не працює). Там є деякі підказки, які висвітлюють деякі шляхи вирішення помилок gnome-shell(деактивація логотипу фону, повторна вирівнювання моніторів), але жоден з них не допомагає.

Я намагався бігти

perf top

який повідомляє про найбільшу роботу в таких символах:

22.55%  [kernel]                            [k] acpi_ns_search_one_scope
11.41%  [kernel]                            [k] acpi_ex_system_memory_space_h
 5.27%  [kernel]                            [k] _raw_spin_lock_irqsave
 5.23%  [kernel]                            [k] _raw_write_unlock_irqrestore
 3.52%  [kernel]                            [k] acpi_ut_update_object_referen
 ...

Тоді я спробував детальніше ознайомитися з gnome-shellпроцесом

perf record -g -p PID
perf report -g

але висновок видається марним:

  Children      Self  Command      Shared Object                 Symbol       
-   29.08%     0.00%  gnome-shell  [unknown]                     [.] 000000000
   - 0                                                                        
      + 55.88% 0                                                              
      + 8.25% 0x85a81                                                         
      + 6.87% 0x2                                                             
      + 5.94% 0x4                                                             
      + 4.60% 0x889fc                                                         
        3.32% 0x656c6261                                                      
      + 2.39% 0x8feab                                                         
        2.23% 0x88467                                                         
      + 1.26% 0x190800002800                                                  
      + 1.24% 0xffad7fa800100008                                              
        1.23% 0xc82ca96051913c58                                              
        1.20% 0x5602c82afa00                                                  
      + 1.18% 0x1                                                             
        1.16% 0x89e84                                                         
        1.10% 0x5602c7c68830                                                  
        1.08% 0x5602c900736e                                                  
      + 1.08% 0x7ffe4bfd1001                                                  
-   21.48%     0.00%  gnome-shell  [kernel.kallsyms]             [k] entry_SYS
   - entry_SYSCALL_64_fastpath                                                
      + 43.62% __GI___ioctl                                                   
      + 18.92% 0xf6fdd                                                        
      + 12.90% __GI___libc_open                                               
      + 5.21% 0xfb4d                                                          
      + 3.92% __GI___libc_recvmsg                                             
      + 2.89% _IO_file_read                                                   
      + 2.75% __socket                                                        
      + 2.74% __GI___libc_read                                                
      + 1.41% __GI___mmap64                                                   
      + 1.39% __GI___libc_recvmsg                                             
        1.30% 0x103b73                                                        
      + 0.77% __GI___writev                                                   
        0.74% __statfs                                                        
      + 0.74% _IO_file_open                                                   
        0.71% __GI___munmap                                                   
+    9.37%     0.00%  gnome-shell  libc-2.22.so                  [.] __GI___io
+    9.37%     0.00%  gnome-shell  [kernel.kallsyms]             [k] sys_ioctl

Чи є у вас натяк на те, що я міг би зробити, щоб перевірити, що відбувається в моїй системі?

Я перебуваю на Skylake i5 6260u з Intel Iris 540 з Fedora під керуванням ядра 4.3.3-300.fc23.x86_64


У мене ж випуск у Arch Linux, ядро ​​4.5.1, з i7-2600
Florian Bw

Ви намагалися встановити зображення на фоні робочого столу?
франси

У мене така ж проблема на Ubuntu 17.10 з Lenovo G50. Розчарований, що ніхто не звертався з цим питанням.
TheGeeko61

Відповіді:


6

Можливо, спробуйте скористатися аудитом, який би приблизно був таким:

$ sudo yum install auditd
$ sudo auditctl -a exit,always -S all -F pid=1234 & sleep 15
$ sudo auditctl -d exit,always -S all -F pid=1234
$ less /var/log/audit/audit.log

Це встановить і запустить аудит, встановить політику для збору інформації про системні виклики для вашого PID (1234 у прикладі), зачекайте короткий час, щоб отримати пристойну кількість інформації, а потім видаліть політику аудиту. Погляньте уважно на auditd.log для вашого GNome-терміналу PID, ви можете краще зрозуміти, чим це зайнято.

Інший швидкий інструмент для виявлення того, на що витрачається процес, - це просто напруга, зачекайте короткий час, а потім натисніть CTRL-c:

$ sudo strace -c -p 1234
strace: Process 1234 attached
^Cstrace: Process 1234 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 56.98    0.003496         388         9           clone
 17.19    0.001055           8       135           rt_sigprocmask
  6.19    0.000380          21        18         9 wait4
  4.58    0.000281          16        18           close
  3.80    0.000233          26         9           read
  3.47    0.000213          24         9           stat
  3.37    0.000207          23         9         9 rt_sigsuspend
  3.08    0.000189          21         9           pipe
  1.34    0.000082           9         9         9 rt_sigreturn
------ ----------- ----------- --------- --------- ----------------
100.00    0.006136                   225        27 total

Тоді, якщо ви хочете дізнатися більше, перевірте відповідну основну сторінку для системного дзвінка, який ви шукаєте:

$ man -s2 clone

Удачі!


1
perf чудово підходить для вивчення того, чим ядро ​​зайняте, але, як ви підозрюєте, що ця проблема використання процесора була викликана в користувальницькій країні, вам найкраще переглянути системні дзвінки. Нещодавно я використовував метод auditd (з '-S execve' і без '-F ...', щоб обмежити політику просто спостерігати за усіма системними викликами 'execve'), щоб відстежувати, який процес / демон закликав 'zpool отримати' кожен десять секунд. Дуже швидко дізнався, що це докер!
trcm

0

apt install inxi inxi -t cm

Процеси: CPU -% використано - топ-5 активних
           1: CPU: 100% команда: gnome-shell pid: 1980
           2: CPU: 1,1% команда: java pid: 1425
           3: CPU: 0,1% команда: java pid: 2949
           4: CPU: 0,0% команда: bash pid: 32516
           5: CPU: 0,0% команда: su pid: 32515
           Пам'ять - MB /% використано - топ-5 активних
           1: mem: 5613,34MB (35,2%) команда: gnome-shell pid: 1980
           2: mem: 3256,19MB (20,4%) команда: gnome-settings-daemon pid: 1647
           3: mem: 2305,28MB (14,4%) команда: java pid: 1425
           4: mem: 1048,82MB (6,5%) команда: java pid: 2949
           5: mem: 225,59MB (1,4%) команда: java pid: 2619

1
Як це показує, що саме в gnome-shell викликає пік процесора?
конфетті

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.