gnome-shellのCPU使用率が高い原因を見つける方法


12

私はLinux Fedora 23をgnome-shell使用していますが、最近、私のプロセスが1つのCPUを常に100%使用していることに気付きました(報告されているhtop、目に見えるアプリケーションは実行されていません)。gnome-shell(背景ロゴの無効化、モニターの再配置)のバグの回避策をカバーするヒントがいくつかありますが、どれも役に立ちません。

走ってみた

perf top

次のシンボルで最も多くの成果を報告します。

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

次に、gnome-shellプロセスを詳しく調べてみました

perf record -g -p PID
perf report -g

しかし、出力は役に立たないようです:

  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

私のシステムで何が起こっているのかを調べるために私にできることのヒントはありますか?

カーネル4.3.3-300.fc23.x86_64を実行しているFedoraでIntel Iris 540を搭載したSkylake i5 6260uを使用しています


私はi7-2600で、アーチのLinuxカーネル4.5.1で同じ問題を持っている
フロリアンベストウエスタン

デスクトップの背景に画像を設定しませんでしたか?
フラン

Lenovo G50を搭載したUbuntu 17.10でも同じ問題が発生します。誰もこの質問に取り組んでいないことに失望しました。
TheGeeko61

回答:


5

おそらくauditdを使用してみてください。おおよそ次のようになります。

$ 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

これにより、auditedがインストールおよび開始され、PIDのシステムコール情報(この例では1234)をキャプチャするポリシーが設定され、しばらく待って適切な量の情報をキャプチャし、監査ポリシーを削除します。gnome-terminal PIDのauditd.logをよく見てください。忙しいのがよくわかります。

プロセスが時間を費やしているものを見つけるためのもう1つの簡単なツールは、straceし、少し待ってから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

さらに詳細を知りたい場合は、見ているシステムコールの適切なマニュアルページをチェックしてください:

$ man -s2 clone

幸運を!


1
perfは、カーネルのビジー状態を調べるのに最適ですが、このCPU使用率の問題はユーザーランドで発生したのではないかと思われるため、システムコールを調べるのが最善です。私は最近、すべての「execve」システムコールを監視するようにポリシーを制限するために「-S execve」と「-F ...」なしでauditedメソッドを使用し、どのプロセス/デーモンが「zpool get」を呼び出していたかを追跡しました10秒。ドッカーだとすぐにわかりました!
trcm

0

apt install inxi inxi -t cm

プロセス:CPU-使用率-トップ5アクティブ
           1:cpu:100%コマンド:gnome-shell pid:1980
           2:cpu:1.1%コマンド:java pid:1425
           3:CPU:0.1%コマンド:Java pid:2949
           4:cpu:0.0%コマンド:bash pid:32516
           5:cpu:0.0%コマンド:su pid:32515
           メモリー-MB /使用率-トップ5アクティブ
           1:mem:5613.34MB(35.2%)コマンド:gnome-shell pid:1980
           2:mem:3256.19MB(20.4%)コマンド:gnome-settings-daemon pid:1647
           3:mem:2305.28MB(14.4%)コマンド:java pid:1425
           4:mem:1048.82MB(6.5%)コマンド:java pid:2949
           5:mem:225.59MB(1.4%)コマンド:java pid:2619

1
これは、gnome-shell内でCPUピークの原因を正確に示していますか?
紙吹雪

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.