SystemTap

読み方 : しすてむたっぷ

英語正式表記 : SystemTap

SystemTapとは

「トレーサ」と呼ばれるデバッグツールの1種。このツールを使ってカーネル内部の各種処理を追跡することで、システムトラブルの原因を詳細に解析できる。

複雑なシステムトラブルが発生した際、Linuxカーネルが何をしていたかをソースコードレベルで確認しなければ、原因を特定できないことがある。ただしカーネルコードを読みながら、自力で問題の箇所を探し出すのはかなりの重労働だ。

そこで活躍するのが「トレース」という手法である。トレースは、アプリケーションやカーネルの実行経路(ライブラリや関数を呼ぶ経路)の途上でさまざまな情報を記録することだ。この情報によって、実際の実行経路のどの個所で問題が生じているのか把握できる。このトレースを行うツールがトレーサである。

その中でもsystemtapは、カーネル内の各種処理を追跡するタイプのトレーサとして良く使われている。独自形式のスクリプトを使い、プログラムのコードを改変することなく、その処理を調査できる。

具体的にはsystemtapのスクリプト内で、カーネルとユーザーアプリケーションの両方に対し「測定ポイント(プローブ)をどこに仕掛けるか」を指定する。さらにスクリプト中には、「プログラムの処理がプローブを通過する際にどのような処理をさせるか」というロジック(プローブハンドラ)も記述しておく。解析時には対象となるカーネルを対象にスクリプトを実行する。

これにより、例えば(1)特定のカーネルメッセージが出る箇所にプローブを仕掛ける、(2)プローブ通過時には、その直前までに呼び出された関数の名前や順序などを示す「バックトレース」を標準出力に出力させる、(3)バックトレースを元にトラブルの原因を探っていく、といった使い方ができる。

出典:ITpro「今日のキーワード」(C)日経BP社

[2011年 1月31日 公開]

課題解決に役立つ資料集「ITライブラリー」

じっくり検討いただけるよう、多種多様なおすすめ資料を取り揃えています。

大塚商会の法人向け通販サイト(たのめーる)のご紹介