Comment trouver la cause de l'utilisation élevée du processeur de gnome-shell?


11

Je suis sous Linux Fedora 23 et j'ai récemment remarqué que mon gnome-shellprocessus utilise constamment 100% d'un processeur (signalé par htopaucune application visible en cours d'exécution). Il existe quelques astuces qui couvrent certaines solutions de contournement pour les bogues dans gnome-shell(désactivation du logo d'arrière-plan, réalignement des moniteurs), mais aucune d'entre elles n'aide.

J'ai essayé de courir

perf top

qui rapporte le plus de travail dans les symboles suivants:

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

Ensuite, j'ai essayé de regarder de plus près le gnome-shellprocessus avec

perf record -g -p PID
perf report -g

mais la sortie semble être 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

Avez-vous une idée pour moi ce que je pourrais faire pour inspecter ce qui se passe sur mon système?

Je suis sur un Skylake i5 6260u avec Intel Iris 540 avec Fedora utilisant le noyau 4.3.3-300.fc23.x86_64


J'ai le même problème sur Arch Linux, noyau 4.5.1, avec un i7-2600
Florian Bw

Avez-vous essayé de ne définir aucune image sur l'arrière-plan du bureau?
Frans

Je rencontre le même problème sous Ubuntu 17.10 avec un Lenovo G50. Déçu que personne n'ait abordé cette question.
TheGeeko61

Réponses:


4

Peut-être essayez-vous d'utiliser auditd, ce qui donnerait à peu près quelque chose comme:

$ 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

Ceci installera et démarrera auditd, définira une stratégie pour capturer les informations sur les appels système de votre PID (1234 dans l'exemple), attendez quelques instants pour capturer un nombre correct d'informations, puis supprimez la stratégie d'audit. Examinez bien le fichier audit auditd.log pour votre PID gnome-terminal, vous aurez peut-être une meilleure idée de ce qu’il fait.

Un autre outil rapide pour repérer ce que passe un processus est son temps d'exécution: il suffit de patienter quelques instants, puis d'appuyer sur 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

Ensuite, si vous souhaitez en savoir plus, consultez la page de manuel appropriée pour l'appel système que vous consultez:

$ man -s2 clone

Bonne chance!


1
perf est très utile pour examiner ce que le noyau est en train de faire, mais comme vous pensez que ce problème d'utilisation du processeur a été causé à l'utilisateur, il est préférable de regarder les appels système. J'ai récemment utilisé la méthode auditd (avec '-S execve' et non '-F ...' pour limiter la stratégie à la surveillance de tous les appels système 'execve') afin de déterminer quel processus / démon appelait 'zpool get' tous les dix secondes. Très vite appris que c'était docker!
trcm

0

apt install inxi inxi -t cm

Processus: CPU -% utilisé - Top 5 actif
           1: cpu: 100% command: gnome-shell pid: 1980
           2: cpu: 1.1% commande: java pid: 1425
           3: cpu: 0.1% commande: java pid: 2949
           4: unité centrale: 0.0% commande: bash pid: 32516
           5: cpu: 0.0% commande: su pid: 32515
           Mémoire - Mo /% utilisé - Top 5 actif
           1: mem: 5613.34MB (35.2%) commande: gnome-shell pid: 1980
           2: mem: 3256.19Mo (20.4%) commande: gnome-settings-daemon pid: 1647
           3: mem: 2305.28MB (14.4%) commande: java pid: 1425
           4: mem: 1048.82MB (6.5%) commande: java pid: 2949
           5: mem: 225.59Mo (1,4%) commande: java pid: 2619

1
Comment cela montre-t-il ce qui, exactement dans gnome-shell, provoque le pic de CPU?
confettis

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.