Bagaimana menemukan penyebab tingginya penggunaan CPU gnome-shell?


12

Saya menggunakan Linux Fedora 23 dan saya baru-baru ini memperhatikan bahwa gnome-shellproses saya terus-menerus menggunakan 100% dari satu CPU (dilaporkan oleh htop, tidak ada aplikasi yang terlihat berjalan). Ada beberapa petunjuk di luar sana yang mencakup beberapa solusi untuk bug di gnome-shell(menonaktifkan logo latar belakang, menyelaraskan kembali monitor) tetapi tidak ada yang membantu.

Saya mencoba lari

perf top

yang melaporkan paling banyak bekerja dalam simbol berikut:

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

Kemudian saya mencoba untuk lebih dekat melihat gnome-shellproses dengan

perf record -g -p PID
perf report -g

tetapi hasilnya tampaknya tidak berguna:

  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

Apakah Anda memiliki petunjuk untuk saya tentang apa yang dapat saya lakukan untuk memeriksa apa yang terjadi pada sistem saya?

Saya menggunakan Skylake i5 6260u dengan Intel Iris 540 dengan Fedora menjalankan kernel 4.3.3-300.fc23.x86_64


Saya memiliki masalah yang sama pada Arch Linux, kernel 4.5.1, dengan i7-2600
Florian Bw

Sudahkah Anda mencoba mengatur tidak ada gambar di latar belakang desktop?
frans

Saya mengalami masalah yang sama pada Ubuntu 17.10 dengan Lenovo G50. Kecewa karena tidak ada yang menjawab pertanyaan ini.
TheGeeko61

Jawaban:


5

Mungkin coba gunakan auditd, yang kira-kira akan seperti:

$ 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

Ini akan menginstal dan memulai auditd, menetapkan kebijakan untuk mengambil info panggilan sistem untuk PID Anda (1234 dalam contoh), menunggu beberapa saat untuk mendapatkan informasi yang layak, kemudian menghapus kebijakan audit. Perhatikan baik-baik auditd.log untuk PID gnome-terminal Anda, Anda mungkin mendapatkan ide yang lebih baik tentang apa yang sedang sibuk dilakukan.

Alat cepat lain untuk mengetahui proses yang menghabiskan waktu adalah hanya strace, tunggu sebentar, lalu tekan 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

Kemudian jika Anda ingin mempelajari lebih lanjut, periksa halaman manual yang sesuai untuk panggilan sistem yang Anda cari:

$ man -s2 clone

Semoga berhasil!


1
perf sangat bagus untuk memeriksa apa yang sedang dilakukan kernel, tetapi karena Anda mencurigai masalah penggunaan CPU ini disebabkan oleh userland, sebaiknya Anda melihat panggilan sistem. Saya baru-baru ini menggunakan metode auditd (dengan '-S execve' dan no '-F ...' untuk membatasi kebijakan hanya menonton semua panggilan sistem 'execve') untuk melacak proses / daemon yang memanggil 'zpool get' setiap sepuluh detik. Sangat cepat mengetahui itu adalah buruh pelabuhan!
trcm

0

apt install inxi inxi -t cm

Proses: CPU -% bekas - top 5 aktif
           1: cpu: 100% perintah: gnome-shell pid: 1980
           2: cpu: 1.1% perintah: java pid: 1425
           3: cpu: 0,1% perintah: java pid: 2949
           4: cpu: 0,0% perintah: bash pid: 32516
           5: cpu: 0,0% perintah: su pid: 32515
           Memori - MB /% digunakan - top 5 aktif
           1: mem: 5613.34MB (35.2%) perintah: gnome-shell pid: 1980
           2: mem: 3256.19MB (20,4%) perintah: gnome-settings-daemon pid: 1647
           3: mem: 2305.28MB (14,4%) perintah: java pid: 1425
           4: mem: 1048.82MB (6.5%) perintah: java pid: 2949
           5: mem: 225.59MB (1.4%) perintah: java pid: 2619

1
Bagaimana ini menunjukkan apa yang sebenarnya ada dalam gnome-shell yang menyebabkan puncak CPU?
confetti

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.