TOP設計・移行・活用> はじめに
OSS適用システムの障害解析ツール
OSS適用システムの障害解析ツール

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

   PCサーバの分野においてLinuxを適用したシステムが普及・拡大し、近年ではミッションクリティカルシステムへの適用ニーズも出てきている。ミッションクリティカルシステムでは、発生した障害に対して迅速に対応することが必須であるが、Linuxにはまだダンプやトレースといったシステム解析のための標準的なツールがなく、各社固有のノウハウで対応しているのが現状であった。

   我々はこのような状況を打破するため、特にクラッシュするような障害の解析を目的に、カーネル内部で起きているイベントを記録するトレース機能LKST(Linux Kernel State Tracer)を開発し、GPLで公開している。このLKSTを利用することでクラッシュの原因解析の時間が短縮でき、迅速な対応の実現に一歩、近づいたと思う。

   しかし障害の中には、応答が遅いために生死監視で障害と判断されるなど、クラッシュしない事例も存在する。この性能遅延に関しては適切な解析ツールがなく、ベンチマークによる評価に頼っていたが、採取できるデータの粒度は粗く種類も少ないため、性能解析が難しかった。事例によっては原因解明ができず、運用で一時的に回避せざるを得ないこともあり、いつ再発するかも知れない不安を抱える状況が生じていた。

   このため、性能解析に関しても、ツールの登場を願う声が次第に多く聞こえるようになってきた。

   この状況に対し、我々はLKSTがカーネル情報収集機能を持つことに着目、そのしくみを利用すれば容易に性能情報を収集できると考えた。そこで、LKSTを利用した性能評価と解析機能の開発を行った。開発は2004/10より開始し、2005/02末にv1が完了した。本記事では、このLKSTの性能評価機能の概要と、その評価方法の一例を紹介する。

   この性能評価機能は、従来のLKST v2.2.1への追加パッチとして開発しており、「LKST Log Tools」というパッケージ名でリリースしている。したがって、今まで公開している資料等では、LKST Log Toolsという名称を用いていることが多い。しかし近々に本機能をマージしたLKST v2.3を公開することもあり、本記事ではLKSTの一機能として説明する。


性能評価機能とは?

   性能評価機能は、LKSTのカーネル情報収集機能を利用して性能情報収集を行う。そこでまず、性能評価機能について説明する前に、従来のLKSTについて説明しておこう。


従来のLKSTの特徴

   従来のLKSTは、カーネル内の処理の遷移情報を得るためのトレーサ機能であり、カーネル内部で発生したイベントの情報を発生順にバッファに記録する機能を実現している。バッファへの記録は循環的(サイクリック)に行うため、バッファ内には常に最新の情報が存在する。情報の取捨選択に関しては、複数のイベントとイベント発生時に実行する処理(ハンドラ)の中から、採取するイベントとハンドラを動的に設定できる。

   このしくみを実現しているのはマスクセットという機構であり、イベントとハンドラの組み合わせを管理している。このマスクセットにより、障害の種類や発生状況に応じて、採取する情報量や内容を動的に調整することが可能となっている。さらに情報を格納するバッファを複数用意し、書き込み先を動的に切り替えることも可能である。

   また、バッファに記録した情報を解析者が自由に加工できるように、テキスト形式で取得するコマンドなども提供している。


性能評価機能

   性能評価機能を実現するために、以下の3つの項目を開発した。

  1. 従来LKSTに対する機能拡張
  2. 性能解析ツール(lkstla)
  3. 可視化ツール

   図1に従来のLKSTとマージした後の全体構成を示す。

性能評価機能を統合したLKSTの構成
図1:性能評価機能を統合したLKSTの構成

   なお、今回の性能評価機能開発はIA32プラットフォームを対象に行った。ベースとなるカーネルは以下の2種類である。

  1. Kernel 2.6.9にLKST v2.2.1を適用したもの。OS再構築(コンパイル)環境はFedora Core 2を用いる。
  2. LKST v2.2.1を適用済みのAsianux 1.0(Kernel 2.4.21)。OS再構築環境はMIRACLE LINUX 3.0を用いる。

   (a)は我々が担当し、(b)はミラクル・リナックス社のメンバーが担当した。次に前述の開発項目(1)〜(3)の概要を説明する。

1   2  3  4  次のページ

資料紹介
「OSSの性能・信頼性評価/障害解析ツール開発」報告書

本記事は、OSS推進フォーラム 開発基盤ワーキンググループによって公開されている「OSSの性能・信頼性評価/障害解析ツール開発」報告書を基に記事を掲載しています。報告書には、本記事で紹介した障害解析ツールのさらに詳しい情報が記載されています。
Javaアプリケーション層の評価、DB層の評価、OS層の評価の各報告書や付録、障害解析ツール開発に関する各報告書などが、OSS推進フォーラム 開発基盤ワーキンググループのホームページにて公開されています。

■「LKST(Linux Kernel State Tracer)によるカーネル性能評価ツールの開発」報告書(PDF形式/447KB)
http://www.ipa.go.jp/software/open/forum/Contents/DevInfraWG/lkstprospec-0316.pdf

■日本OSS推進フォーラム・開発基盤ワーキンググループホームページ
http://www.ipa.go.jp/software/open/forum/DevInfraWG.html
株式会社日立製作所 平松 雅巳
著者プロフィール
株式会社日立製作所  平松 雅巳
1996年大阪大学に入学。以来今に至るまで、優秀なハッカー達に囲まれて過ごしてきた。大学ではロボット制御を主に研究。2002年にシステム開発研究所に入所以降は、Linuxカーネル及びOSSに関連した研究開発に従事。LKSTのメンテナ。OSS関連のカンファレンスやコミュニティ活動にも参加している。


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


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