チューニンガソンの優勝者が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時間を費やしてるのかが簡単にわかってボトルネックの切り分けがすばやくできそうで便利な気がします!