¿Cómo encontrar la causa del alto uso de CPU de gnome-shell?


12

Estoy en un Linux Fedora 23 y recientemente noté que mi gnome-shellproceso usa constantemente el 100% de una CPU (según lo informado htop, no se ejecutan aplicaciones visibles). Hay algunas sugerencias que cubren algunas soluciones para los errores en gnome-shell(desactivar el logotipo de fondo, volver a alinear los monitores), pero ninguno de ellos ayuda.

Traté de correr

perf top

que informa la mayor parte del trabajo en los siguientes símbolos:

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

Luego traté de mirar más de cerca el gnome-shellproceso con

perf record -g -p PID
perf report -g

pero la salida parece ser inútil:

  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

¿Tiene alguna pista para mí sobre lo que podría hacer para inspeccionar lo que está sucediendo en mi sistema?

Estoy en un Skylake i5 6260u con Intel Iris 540 con Fedora ejecutando kernel 4.3.3-300.fc23.x86_64


Tengo el mismo problema en Arch Linux, kernel 4.5.1, con un i7-2600
Florian Bw

¿Has intentado configurar ninguna imagen en el fondo del escritorio?
Frans

Tengo el mismo problema en Ubuntu 17.10 con un Lenovo G50. Decepcionado de que nadie haya abordado esta pregunta.
TheGeeko61

Respuestas:


5

Quizás intente usar auditd, que sería más o menos como

$ 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

Esto instalará y comenzará a auditarse, establecerá una política para capturar información de llamadas del sistema para su PID (1234 en el ejemplo), esperará un momento para capturar una cantidad decente de información y luego eliminará la política de auditoría. Eche un buen vistazo al auditd.log para su PID gnome-terminal, puede tener una mejor idea de lo que está ocupado haciendo.

Otra herramienta rápida para detectar lo que un proceso está gastando es hacer tiempo, esperar un poco y luego presionar 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

Luego, si desea obtener más información, consulte la página de manual correspondiente a la llamada del sistema que está viendo:

$ man -s2 clone

¡Buena suerte!


1
perf es excelente para examinar lo que el núcleo está ocupado haciendo, pero como sospecha que este problema de uso de la CPU fue causado en el país de usuario, es mejor que observe las llamadas al sistema. Recientemente utilicé el método auditado (con '-S execve' y no '-F ...' para restringir la política para ver todas las llamadas al sistema 'execve') para rastrear qué proceso / demonio llamaba 'zpool get' cada diez segundos. Muy rápidamente aprendí que era docker!
trcm

0

apt install inxi inxi -t cm

Procesos: CPU -% utilizado - top 5 activo
           1: cpu: comando 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 /% utilizado - top 5 activo
           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.82MB (6.5%) comando: java pid: 2949
           5: mem: 225.59MB (1.4%) comando: java pid: 2619

1
¿Cómo muestra esto qué exactamente dentro de gnome-shell está causando el pico de la CPU?
confeti el

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.