sysprofの残りの機能は、記録したプロファイルの分析に関係している。sysprofウィンドウは3つの主要セクションに別れており、それらは「Funcions(関数)」、「Callers(呼び出し元)」、「Descendants(子孫)」の各リストになっている。分析の作業は関数リストから始める。デフォルトでは、実行された関数が総実行時間の長いものから順に一覧表示される。このリストには、実行可能なプロセス、共有ライブラリ、カーネル自身の実行時間も表示される。
いずれかの関数をクリックすると、画面の右側に子孫プロセスのリストが現れる。関数リスト内のプロセスをクリックした場合は、左下の呼び出し元リストに「<spontaneous>」と表示される。関数または子孫のリストで、たとえば「f」という関数をクリックすると、この関数「f」を呼び出すすべての関数が呼び出し元リストに表示される。
私の環境では「rmmod sysprof_module」の実行後にカーネルのOopsメッセージが出たので、プロダクション環境でのsysprofの使用は避けたほうがいいかもしれない。このOopsメッセージはすべてのコンソールに出力されたが、それでもシステムの利用やリブートは普通に行えた。その後モジュールの削除と再挿入のテストを行った際にはOopsはもう発生しなかったが、システムは初回のリブートなしではもはや使えない状態になってしまった。
いくつか簡単な機能強化を施せば、sysprofはもっと優れたものになるだろう。まず、参照済みのプロファイル情報間を自在に行き来できる戻る/進むのボタンがインタフェースにあるとすばらしい。また、プロファイルの記録がコマンドラインから実行できれば、グラフィカルなクライアントのリモート実行に必要なX Windowライブラリがインストールされていないサーバでもプロファイリングが簡単に行えるようになる。コンソールクライアントがあれば、自動記録も容易になるはずだ。また、残念なことにsysprofはi386およびx86-64アーキテクチャにしか対応していない。ARMプラットフォームでも間違いなく役に立つはずなのだが。
sysprofはすでに多くのディストリビューションにパッケージングされており、アプリケーションの再コンパイルが不要なので、すぐにでもパフォーマンスのボトルネック調査に利用できる。
Ben Martinは10年以上もファイルシステムに携わっている。博士号を持ち、現在はlibferrisや各種ファイルシステム、検索ソリューションを中心としたコンサルティングサービスを提供している。
