Je suis sous Linux Fedora 23 et j'ai récemment remarqué que mon processus gnome-Shell
utilise constamment 100% d'un processeur (signalé par htop
, aucune application visible ne s'exécute). Il y a quelques astuces qui couvrent certaines solutions de contournement pour les bugs dans le 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 processus gnome-Shell
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 exécutant le noyau 4.3.3-300.fc23.x86_64.
Peut-être essayez-vous d'utiliser auditd, ce qui pourrait être à peu près 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!
apt install inxi inxi -t cm
Processus: CPU -% d'utilisation - 5 principaux actifs 1: cpu: 100% commande: gnome-Shell pid: 1980 2: cpu: 1.1% commande: Java pid: 1425 3: cpu: 0.1% commande: Java pid: 2949 4: cpu: 0.0% commande: bash pid: 32516 5: cpu: 0.0% commande: su pid : 32515 Mémoire - Mo /% utilisé - 5 principaux actifs 1: mem: 5613.34Mo (35.2%) commande: gnome-Shell pid: 1980 2: mem: 3256.19 MB (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: pid Java: 2949 5: mem: 225,59 Mo (1,4%) commande: pid Java: 2619