Come trovare la causa dell'elevato utilizzo della CPU di gnome-shell?


12

Sono su un Fedora 23 Linux e di recente ho notato che il mio gnome-shellprocesso utilizza costantemente il 100% di una CPU (segnalato da htop, nessuna applicazione visibile in esecuzione). Ci sono alcuni suggerimenti là fuori che coprono alcune soluzioni alternative per i bug nel gnome-shell(disattivazione del logo di sfondo, riallineamento dei monitor) ma nessuno di questi aiuta.

Ho provato a correre

perf top

che riporta il maggior numero di lavori nei seguenti simboli:

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
 ...

Quindi ho cercato di esaminare più da vicino il gnome-shellprocesso con

perf record -g -p PID
perf report -g

ma l'output sembra essere inutile:

  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

Hai un suggerimento per me cosa potrei fare per controllare cosa sta succedendo sul mio sistema?

Sono su uno Skylake i5 6260u con Intel Iris 540 con Fedora con kernel 4.3.3-300.fc23.x86_64


Ho lo stesso problema su Arch Linux, kernel 4.5.1, con un i7-2600
Florian Bw,

Hai provato a non impostare alcuna immagine sullo sfondo del desktop?
Frans

Sto riscontrando lo stesso problema su Ubuntu 17.10 con un Lenovo G50. Deluso dal fatto che nessuno abbia affrontato questa domanda.
TheGeeko61,

Risposte:


5

Forse prova a usare auditd, che sarebbe approssimativamente qualcosa del tipo:

$ 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

Ciò installerà e avvierà auditd, imposterà un criterio per acquisire le informazioni sulle chiamate di sistema per il tuo PID (1234 nell'esempio), attendere qualche istante per acquisire una discreta quantità di informazioni, quindi rimuovere il criterio di controllo. Dai un'occhiata a auditd.log per il tuo PID gnome-terminal, potresti avere una migliore idea di cosa è occupato.

Un altro strumento rapido per individuare ciò che un processo sta trascorrendo sta facendo il suo tempo è semplicemente tracciare, attendere un po 'di tempo, quindi premere 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

Quindi, se vuoi saperne di più, controlla la pagina man appropriata per la chiamata di sistema che stai guardando:

$ man -s2 clone

In bocca al lupo!


1
perf è ottimo per esaminare cosa sta facendo il kernel, ma poiché sospetti che questo problema di utilizzo della CPU sia stato causato in userland, è meglio guardare le chiamate di sistema. Recentemente ho usato il metodo auditd (con '-S execve' e senza '-F ...' per limitare la politica per guardare solo tutte le 'eseguire' chiamate di sistema) per rintracciare quale processo / demone chiamava 'zpool get' ogni dieci secondi. Molto rapidamente imparato che era docker!
trcm,

0

apt install inxi inxi -t cm

Processi: CPU -% utilizzata - primi 5 attivi
           1: cpu: comando al 100%: gnome-shell pid: 1980
           2: cpu: 1,1% comando: java pid: 1425
           3: cpu: 0,1% comando: java pid: 2949
           4: cpu: 0,0% comando: bash pid: 32516
           5: cpu: 0,0% comando: su pid: 32515
           Memoria - MB /% utilizzato - primi 5 attivi
           1: mem: 5613.34MB (35.2%) comando: gnome-shell pid: 1980
           2: mem: 3256.19MB (20,4%) comando: gnome-settings-daemon pid: 1647
           3: mem: 2305.28MB (14,4%) comando: java pid: 1425
           4: mem: 1048,82 MB (6,5%) comando: java pid: 2949
           5: mem: 225,59 MB (1,4%) comando: java pid: 2619

1
In che modo ciò mostra esattamente cosa sta causando il picco della CPU all'interno di gnome-shell?
coriandoli

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.