2015-07-06
perf + Flame Graphs で Linux カーネル内のボトルネックを特定する
ddで1GBのファイルを作成し perf でプロファイリングし、Flame Graphs で可視化したものです。
下から上に行くほどコールスタックが深く、左から関数名のアルファベット順でソートされています。一番上で横幅が広い関数がCPUを長く使っています。今回は "_aesni_enc1" つまり暗号化がボトルネックになっていることがわかります。
Flame Graphs の見方
P.35
P.40
手順
$ wget https://raw.githubusercontent.com/brendangregg/FlameGraph/master/stackcollapse-perf.pl $ wget https://raw.githubusercontent.com/brendangregg/FlameGraph/master/flamegraph.pl
- root 以外でも perf を使えるようにする
# echo 0 > /proc/sys/kernel/perf_event_paranoid # cat /proc/sys/kernel/perf_event_paranoid 0
$ perf record -a -g -F100000 dd if=/dev/zero of=/tmp/test.dat bs=1024K count=1000
- perf で取得したデータをテキストに変換する。
$ perf script> perf_data.txt
$ perl stackcollapse-perf.pl perf_data.txt|perl flamegraph.pl --title "Flame Graphs - dd if=/dev/zero of=/tmp/test.dat bs=1024K count=1000" > flamegraph_dd.svg
環境
$ cat /etc/issue Oracle Linux Server release 6.6 Kernel \r on an \m $uname -r 2.6.39-400.17.1.el6uek.x86_64
参考
Systems Performance: Enterprise and the Cloud
- 作者: Brendan Gregg
- 出版社/メーカー: Prentice Hall
- 発売日: 2013/10/26
- メディア: ペーパーバック
- この商品を含むブログを見る
関連
トラックバック - http://d.hatena.ne.jp/yohei-a/20150706/1436208007
リンク元
- 38 https://www.google.co.jp/
- 8 http://t.co/hDLt7qrUwJ
- 8 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB8QFjAA&url=http://d.hatena.ne.jp/yohei-a/20120205/1328432481&ei=HI-aVbijJ6bDmAWpqoIg&usg=AFQjCNEWPjuprB2I3TM8UAknsNujOgJZBA&sig2=pzKXfM_18COUMua_q9hCcA
- 6 http://pipes.yahoo.com/pipes/pipe.info?_id=VPw6npu13RGKo15vBRNMsA
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=10&ved=0CGsQFjAJ&url=http://d.hatena.ne.jp/yohei-a/20100322/1269254565&ei=cZSaVZSIHZbe8AX0y7uoBQ&usg=AFQjCNGipiwiy1Ij5K_SO1TMG8m3M8XqhA
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&sqi=2&ved=0CCQQFjAB&url=http://d.hatena.ne.jp/yohei-a/20111211/1323618367&ei=XY6aVbn-O9be8AW8vqKgCA&usg=AFQjCNHhtDMw7VM6WIvE_WZZRNMDe1T_qw&bvm=bv.96952980,d.dGc
- 4 http://www.google.co.jp/url?url=http://d.hatena.ne.jp/yohei-a/20081228/1230459304&rct=j&frm=1&q=&esrc=s&sa=U&ei=s5yaVfuUH9Tp8AW55ZTIBw&ved=0CBsQFjAB&usg=AFQjCNHDuyy27UZ-VtaE94AVj-OA0J5dgg
- 3 http://pipes.yahoo.com/pipes/pipe.info?_id=8dda7c5265619c2fb368495a3d11b784
- 3 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CCgQFjAC&url=http://d.hatena.ne.jp/yohei-a/20110112/1294786963&ei=A5qaVY7YL4aj8QXE9rzoAg&usg=AFQjCNGC9BNcN2JdiIYyNMzH43OOzVaXkA&bvm=bv.96952980,d.dGc
- 2 http://d.hatena.ne.jp/notify-NotifyUser_POST_NG_CATEGORY?aHR0cDovL2QuaGF0ZW5hLm5lLmpwL3lvaGVpLWEvMjAxMTAxMTIvMTI5NDc4Njk2Mw==
おとなり日記
- 2015-07-06 四十の手習いプログラマの日記 4/78 5%