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というやつが設定ツールっぽいので実行。
制限を「コンピュータを利用していない時だけ」に変更して様子見…これでいいかな〜
駄目みたいですね…
%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!
結論
(使いにくいようだったら)アンインストールしましょう