TOP設計・移行・活用> LKSTでカーネルの性能評価をしてみよう
OSS適用システムの障害解析ツール
OSS適用システムの障害解析ツール

第3回:Linuxカーネルの性能評価機能(LKST)とは
著者:日立製作所  平松 雅巳、杉田 由美子   2005/6/28
前のページ  1  2  3   4  次のページ
LKSTでカーネルの性能評価をしてみよう

   では実際にLKSTを使って性能評価をしてみよう。ここでは、ベンチマーク(IOzone)を実行した時の性能評価方法を紹介する。説明は、LKSTを適用したOSが起動していることを前提に行う。インストール・再起動方法の説明は省略するので、実際に行う場合にはパッケージに同梱しているINSTALLドキュメントを参照して欲しい。
解析の準備 〜 その1

   LKSTと、今回の情報収集に必要なLKST拡張イベントハンドラをロードする。これらのハンドラはすべてLKSTパッケージに同梱されている。LKSTをロードした瞬間からトレースが開始され、情報がデフォルトのバッファに格納される。

# /sbin/modprobe lkst
# /sbin/modprobe lksteh_procstat
# /sbin/modprobe lksteh_sysinfo
# /sbin/modprobe lksteh_wqcounter
解析の準備 〜 その2

   マスクセット設定用スクリプトを実行し、解析用のマスクセットを作成する。以下のコマンドを入力し、システムコールとブロックIO時間を収集するマスクセット(log-mask)を作る。

# cd /usr/local/src/lkst-2.2.1/lkstlogtools/
# lkst_make_mask log-mask syscall biotime
解析の準備 〜 その3

   「解析の準備 〜 その2」で作ったマスクセットをLKSTで使用する。

# lkstm set -n log-mask
解析の準備 〜 その4

   デフォルトのバッファではサイズが小さいため、20MBのバッファをカーネル内に新たに生成する。

# lkstbuf create -s 20M
解析の準備 〜 その5

   「解析の準備 〜 その4」で生成したバッファを使用し、バッファ内容をいったん空にする。

# lkstbuf jump -b 1
# lkstbuf read -f /dev/null
負荷生成と情報取得

   ベンチマーク(IOzone)を実行して負荷を生成、その時のイベント情報をファイルに保存する。

# iozone -i 1 -+n -w -r 1M -s 32M -t 1 -F /tmp/testfile &
# lkstbuf read -f lkstlogdata
取得した情報の解析 〜 その1

   ベンチマーク実行時間が多くかかっている時、どのシステムコールに多くの時間が使われているのか、それはなぜなのかを知りたいと思うだろう。その場合、実行されたシステムコールの開始から終了までの時間分布を取得する。

# lkstla syscall -s lkstlogdata-* > syscall.stat

   上記統計データをグラフにするには以下のコマンドを実行する。

# lkst_plot_stat syscall.stat

   コマンドの実行結果を図2示す。

システムコール時間統計値の可視化例
図2:システムコール時間統計値の可視化例
(画像をクリックすると別ウィンドウに拡大図を表示します)


   横軸は実行されたシステムコールの種類であり、棒グラフは実行回数である。折れ線グラフは実行時間の最大/最小/平均を示しており、システムコールが効率よく実行されているかどうか、例えば実行回数が多いが実行時間は短いのかどうかなどを確認することができる。また、実行回数は少ないのに平均実行時間が長い、もしくは最大実行時間が平均実行時間と不釣合いなほど長いというような、性能障害の危険性がありそうなシステムコールを知ることもできる。

   したがって、その後はシステムコール内の処理を細かく分割してフックポイントを入れ、どこが遅いのかを再調査するなど、ポイントを絞って同様にLKSTで解析を深く掘り下げていくことができる。

   そのひとつの例として、readシステムコールのカーネル内処理時間の評価方法を次に紹介する。

前のページ  1  2  3   4  次のページ


株式会社日立製作所 平松 雅巳
著者プロフィール
株式会社日立製作所  平松 雅巳
1996年大阪大学に入学。以来今に至るまで、優秀なハッカー達に囲まれて過ごしてきた。大学ではロボット制御を主に研究。2002年にシステム開発研究所に入所以降は、Linuxカーネル及びOSSに関連した研究開発に従事。LKSTのメンテナ。OSS関連のカンファレンスやコミュニティ活動にも参加している。


株式会社日立製作所 杉田 由美子
著者プロフィール
株式会社日立製作所  杉田 由美子
システム開発研究所に勤務。OS、コンパイラなどの研究開発を経て、90年代後半からシステムの高信頼化研究に着手。Linuxカーネルの研究は2001年から担当。現在もLinux/OSSを中心とした研究開発に従事。LKST/DAVLのメンテナ。OSS関連のコミュニティ活動にも参加し、普及にも取り組んでいる。


INDEX
第3回:Linuxカーネルの性能評価機能(LKST)とは
  はじめに
  従来LKSTに対する機能拡張
LKSTでカーネルの性能評価をしてみよう
  取得した情報の解析 〜 その2