カーネルをチューニングする上で重要なのは,システムの状態を把握し,効果的なチューニング方法を見つけることです。そのため,調査や分析ができるツールは不可欠です。カーネル・チューニングに役立つツールを紹介します。

 チューニングには,調査や分析は欠かせません。例えば,デスクトップ・アプリケーションの反応が遅いことを体感できても,何が原因(ボトルネック)になっているのかが絞り込めないと,チューニングするポイントが見つかりません。試行錯誤を繰り返しながらチューニングしようとしても,範囲が絞り込めずにかなりの時間を費やすことになります。

 そのようなことがないように,アプリケーションやカーネルの動作や実行環境の情報を取得し,解析するのに有効なツールが多数開発されています(表1)。これらのツールは,次のような機能を備えています。

(1)システム情報取得
(2)プロファイリング
(3)トレース
(4)ダンプ
(5)ロガー

表1●カーネルの調査や解析に役立つ主なツールおよびファイル
[画像のクリックで拡大表示]
表1●カーネルの調査や解析に役立つ主なツールおよびファイル

 それでは,機能ごとに代表的なツールを紹介していきましょう。

(1)システム情報取得

 CPUの種類やメモリー容量,ハードウエアの仕様,稼働中のプロセスの種類やCPU稼働率,メモリー使用率などのシステム情報は,現在のシステム状態を大局的につかむ時に役に立ちます。Linuxディストリビューションは,このシステム情報を取得するさまざまなツールを標準で装備しています。

 例えば「top」は,CPUの使用率の高いプロセス順に,CPUやメモリーの使用率などをリアルタイムで表示するツールです(写真1)。プロセスが使用するCPUやメモリー資源の状態をリアルタイムに監視でき,本特集Part1で紹介したnice値も表示されます。このtopは,プロセスの実行優先度を変更する際のチューニングなどにも重宝します。

写真1●システム情報を取得する「top」
写真1●システム情報を取得する「top」
CPUの使用率の高いプロセス順に,CPUやメモリーの使用率などをリアルタイムで表示するツール。ほとんどのLinuxディストリビューションに含まれている。

 このほか, CPUやメモリー,I/Oそれぞれの状態を取得するには,それぞれ「mpstat」「free」「iostat」を用いるとよいでしょう。これらもLinuxディストリビューションに標準で含まれています*1