勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

日本語で読めるperf linux profilerの情報を整理する

最近いろいろとperf linux profilerについて調べていたので、見つけた日本語情報を中心にまとめておく。あまり需要はなさそうだけど。

Speed

書籍で読めるperfの情報

詳解システム・パフォーマンス

詳解 システム・パフォーマンス

詳解 システム・パフォーマンス

パフォーマンスの大家Brendan Greggが書いた本であり、詳しく紹介されている。しかし、それでも主要なコマンドの実行例が中心であり、取り上げられていない機能も多い。最初のとっかかりとして読むのが良さそう。具体的には次のような章立てで紹介されている(約8ページ)。

  • 6章 CPU
    • 6.6.12 perf
      • システムプロファイリング
      • プロセスのプロファイリング
      • スケジューラのレイテンシ
      • stat
      • ソフトウェアトレーシング
      • ドキュメント

perf(1) コマンドは、もともと PCL(Performance Counter for Linux)と呼ばれていたが、その後プロファイリングとトレーシングのためのツールコレクションに発展し、現在は LPE(Linux Performace Events)と呼ばれている。各ツールは、サブコマンドとして選択される。たとえ ば、perf statは、CPCベースの統計を提供するstatコマンドを実行する。
詳解 システム・パフォーマンス

LINUX カーネル HACKS

Linuxカーネル Hacks ―パフォーマンス改善、開発効率向上、省電力化のためのテクニック

Linuxカーネル Hacks ―パフォーマンス改善、開発効率向上、省電力化のためのテクニック

詳解 システム・パフォーマンス」より大分詳しく紹介されている(約24ページ)。特に、perf scriptとperf probe について詳しく書かれているのが有り難い。また、ftraceなど他のツールも紹介されていて勉強になる。章立てはこんな感じ。

  • 8章 プロファイリング、トレース

ソフトウェアやシステムのスループットやレイテンシを改善することで、計算機を効率よく使うことができます。特にOSSでは、自分でソースコードを手に入れ、これらのパフォーマンスを改善することが可能です。
Linuxカーネルの開発者たちも、品質を向上するためにパフォーマンス解析を行っています。このため、カーネル内に様々なパフォーマンス解析や動作解析を行うための機能が追加されています。この章では、perf toolsによるパフォーマンス解析や、ftraceを使った動作解析、SystemTapを使ったプログラマブルトレーシングなどを説明します。もちろん、これらの機能は、カーネルのパフォーマンス解析だけでなく、ユーザプログラムの解析や、システムのトラブルシューティングなどにも有用です。
Linuxカーネル Hacks ―パフォーマンス改善、開発効率向上、省電力化のためのテクニック