なんとな~くしあわせ?の日記

JavaとかAWSの設定とかをメモする技術ブログ

trackerというソフトがCPUを占有する

タイトル通り…

GNOME環境のLinuxを使っているとたま〜に原因不明の高負荷がかかってユーザーの心が粉微塵になることがある。

今日はちょうどそれが起きて対策がわかったので紹介、

Linux上でCPUやメモリの負荷、プロセスIDを調べるにはpsやtopを使う。

// ずらずら…
 $ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  10644   824 ?        Ss   21:53   0:00 init [2]  
root         2  0.0  0.0      0     0 ?        S    21:53   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    21:53   0:00 [ksoftirqd/0]
root         6  0.0  0.0      0     0 ?        S    21:53   0:00 [migration/0]
root         7  0.0  0.0      0     0 ?        S    21:53   0:00 [watchdog/0]
root         8  0.0  0.0      0     0 ?        S    21:53   0:00 [migration/1]
root         9  0.0  0.0      0     0 ?        S    21:53   0:00 [kworker/1:0]
root        10  0.0  0.0      0     0 ?        S    21:53   0:00 [ksoftirqd/1]
root        11  0.0  0.0      0     0 ?        S    21:53   0:00 [kworker/0:1]

で、高負荷がかかった際に上記の%CPUが90%とかになっていた。なおかつ犯人は /usr/lib/tracker 以下にあると、右端のコマンド部分に表示されていた。

というわけで、そいつがなんなのかdpkgを使って調べる。

 $ dpkg -l | grep tracker
ii  libtracker-extract-0.14-0                0.14.1-3                           amd64        tracker extractor library
ii  libtracker-miner-0.14-0                  0.14.1-3                           amd64        tracker data miner library
ii  libtracker-sparql-0.14-0                 0.14.1-3                           amd64        metadata database, indexer and search tool - library
ii  tracker                                  0.14.1-3                           amd64        metadata database, indexer and search tool
ii  tracker-extract                          0.14.1-3                           amd64        metadata database, indexer and search tool - metadata extractors
ii  tracker-gui                              0.14.1-3                           amd64        metadata database, indexer and search tool - GNOME frontends
ii  tracker-miner-fs                         0.14.1-3                           amd64        metadata database, indexer and search tool - filesystem indexer
ii  tracker-utils                            0.14.1-3                           amd64        metadata database, indexer and search tool - commandline tools

とりあえず右端の説明でtrackerとはファイルのインデックス付けのためのライブラリとアプリであることがわかる。WindowsでいうところのGoogle Desktopみたいな感じか。

では、なんか設定変更できねえかなあと、当てずっぽうでコマンドを走らせる。

// ずらずら…
$ dpkg -L tracker-gui
/.
/usr
/usr/bin
/usr/bin/tracker-preferences
/usr/bin/tracker-needle
/usr/lib
/usr/lib/nautilus
/usr/lib/nautilus/extensions-3.0
/usr/lib/nautilus/extensions-3.0/libnautilus-tracker-tags.so

とりあえずtracker-preferrencesというやつが設定ツールっぽいので実行。

f:id:panzer-jagdironscrap1:20140121221558p:plain

制限を「コンピュータを利用していない時だけ」に変更して様子見…これでいいかな〜

駄目みたいですね…

%Cpu(s):  4.2 us,  1.0 sy,  9.2 ni, 55.0 id, 30.6 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  16420284 total, 14604992 used,  1815292 free,   310796 buffers
KiB Swap: 32400380 total,        0 used, 32400380 free, 12174216 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                                                                              
11499 hiroyuki  39  19  521m  39m  11m D  41.2  0.2   3:38.02 tracker-extract                                                                                                                                      
 3739 hiroyuki  39  19  645m 398m 6464 S   4.3  2.5   8:36.62 tracker-miner-f                                                                                                                                      
 4782 hiroyuki  20   0  395m  20m  12m S   4.3  0.1   0:10.59 gnome-terminal                                                                                                                                       
 3312 root      20   0  171m  65m  30m S   2.7  0.4   4:05.07 Xorg                                                                                                                                                 
 3734 hiroyuki  20   0  338m  66m 5180 S   2.7  0.4   5:10.59 tracker-store                                                                                                                                        
11879 hiroyuki  20   0  990m 111m  17m S   2.0  0.7   0:02.51 chrome                                                                                                                                               
 3628 hiroyuki  20   0 32696 3308  760 S   0.7  0.0   0:52.65 dbus-daemon                                                                                                                                          
 3632 hiroyuki  20   0  214m 5000 3272 S   0.7  0.0   0:16.52 ibus-daemon                                                                                                                                          
 3642 hiroyuki  20   0  303m  25m  12m S   0.7  0.2   0:02.22 python                                                                                                                                               
 3700 hiroyuki  20   0 1137m 198m  62m S   0.7  1.2   3:57.60 gnome-shell                                                                                                                                          
  266 root      20   0     0    0    0 S   0.3  0.0   0:01.77 jbd2/sda1-8                                                                                                                                          
 3725 hiroyuki  20   0 2599m  11m 6888 S   0.3  0.1   0:11.38 CLaunch.exe                                                                                                                                          
 3756 hiroyuki  20   0 11500 8120  752 S   0.3  0.0   0:09.64 wineserver                                                                                                                                           
10417 hiroyuki  20   0 22880 1732 1180 R   0.3  0.0   0:03.57 top           

Debianメーリングリスト

困っている人は他にもいたみたい

nepomuk, tracker - why such CPU and memory hungry beasts are installed automatically?
(NEPOMUKにtracker…どうしてそんなCPUとメモリを食い尽くすバケモノが自動的にインストールされるんだ?)

このリンクから見ることができるpsの結果はさすがにワロタ
Re: nepomuk, tracker - why such CPU and memory hungry beasts are installed automatically?

ソースコードを見てみるとnokiaの人らがコーディングしてたっぽい。
ちゃんとコメントを書き、コーディングスタイルも変ではないところを見ると一応作ったのはプロっぽい。(…関数名がクソ長い気がするが)ファイルにインデックスを張る際に、全力でCPUが走っちゃうのが問題なので、それを直してくれんかなあと思う次第。

trackerのGitのリポジトリは以下にあるようだ
tracker - Gitorious

GNOMEにとってのtrackerが何を意味するか、どんな働きをするかについて(機械翻訳するといい感じで読める)
Projects/Tracker/WhatIsTracker - GNOME Wiki!

結論

(使いにくいようだったら)アンインストールしましょう