かみぽわーる

kamipo's blog

Debianでperfを使う

チューニンガソンの優勝者がperfというコマンドを使ってCPU時間のプロファイリングをしていたらしい。そんなコマンドはじめて知った…。

yumだと以下のように直感的なパッケージで入るそうですが

yum install perf

Debian Squeezeでperfコマンドはlinux-baseパッケージに含まれててデフォルトで入ってるんですが実行すると

% sudo perf top
/usr/bin/perf: line 7: exec: perf_2.6.32: not found
E: linux-tools-2.6.32 is not installed.

といわれるのでlinux-tools-2.6.32を入れると使えるようになります。

% sudo aptitude install linux-tools-2.6.32

あとUbuntu 10.10でも試してみたら、こっちではperfコマンドはlinux-tools-commonパッケージに含まれてて実行すると

% sudo perf top
perf_2.6.35-28 not found
You may need to install linux-tools-2.6.35-28

といわれるので以下の2つのパッケージを入れるとUbuntuでもperfを使えます。

% sudo aptitude install linux-tools-common linux-tools-2.6.35-28

CPUボトルネックのときにperfを使うと、カーネルが何にCPU時間を費やしてるのかが簡単にわかってボトルネックの切り分けがすばやくできそうで便利な気がします!