|
|
1 2 3 4 次のページ
|
|
はじめに
|
前回、LKST v2.3で導入される性能評価機能によって、従来より簡単にカーネルの性能解析を実施することができることを紹介した。
LKSTはSourceForge(http://lkst.sourceforge.net/)にてKernel 2.6用のパッチとして公開されている。ここで提供されているパッチは、オリジナルのKernel 2.6用のパッチであるため、一般的なディストリビューション用のカーネルに適用するためには、パッチが適用できるように手を加える必要がある。また、カーネルのビルドという作業が必要になるため、一般のユーザが使うには敷居が高いといえる。
そのため、性能解析が必要な構築済みのシステムがあったとしても、利用中のカーネルにLKSTを組み込んで、障害解析に利用するというのは、現実的にはなかなか難しいといえる。また、実際のシステム環境としては、Kernel 2.4の環境がまだまだ主流であるといえる。
そこで、今回の性能評価機能の開発にあたり、Kernel 2.4への対応も同時に行った。具体的には、今回開発した性能評価機能をMIRACLE LINUX V3.0用に移植し、この機能を利用するために必要なモジュールをすべてRPMパッケージに取り込むことによって、LKSTの性能評価機能をより利用しやすい環境を整えた。
本記事では、MIRACLE LINUX V3.0を利用した実践的なLKSTの利用について紹介する。
|
Kernel 2.4への移植
|
ミラクル・リナックスでは、「MIRACLE LINUX Standard Edition V2.1」からLKSTの組み込みを行っている。今回、ベースとなっている「MIRACLE LINUX V3.0 - Asianux Inside」では、LKST v2.0.1が既に組み込まれている。
今回開発したLKST性能評価機能は、LKST v2.2がベースとなっているため、主に次の2つの作業を行う必要があった。
- LKST v2.2のKernel 2.4への移植
- MIRACLE LINUXのカーネル(kernel-2.4.21)に組み込んでいるLKSTのバージョンアップ
実際に、MIRACLE LINUXへのLKST性能評価機能の移植に際して、次のような箇所に修正が必要であった。
- LKST v2.2では、LKSTの実装においてKernel 2.6の機能を利用している箇所があり、LKSTのコアの実装をKernel 2.4用に変更する必要があった。特に、Kernel 2.6ではsysfsの導入に伴ってデバイスファイルの登録処理が変更されており、LKST v2.2でもsysfsに対応したコードとなっているため、Kernel 2.4用に修正を行う必要があった。
- システムコールのエントリポイントがKernel 2.6とKernel 2.4で異なるため、LKSTのシステムコール関連のフックポイントとしてKernel 2.6用に追加されているSYSCALL_SYSENTER/SYSCALL_SYSEXITを削除し、SYSCALL_ENTRY/SYSCALL_EXITのみに変更する必要があった。
- LKSTのフックポイントには、NORMAL形式とINLINE形式の2種類があり、複数の箇所で同じフックポイントを利用する場合には、INLINE形式を利用する必要がある。MIRACLE LINUX V3.0のKernelでは、メモリの確保や解放といったメモリ関連処理で、同じようなコードが何箇所かに分散されている。このような箇所で、オリジナルのLKST v2.2ではNORMAL形式のフックポイントが1箇所だけであったものを、INLINE形式に変更して複数箇所に追加する必要があった。
- MIRACLE LINUXのカーネルに適用するためには、カーネルABIを維持する必要がある。LKST v2.3で追加されたタイマー関連の処理を組み込む際に、カーネルABIを維持するようにコードの変更が必要であった。
また、ユーザランドのツールとして、従来のlkstutilsパッケージにlkstlaなどの性能評価用ツールを統合した。カーネルのシンボル情報の参照先をKernel 2.6の「/proc/kallsyms」から、Kernel 2.4で用いられる「/proc/ksyms」に変更するなどの変更を加えてある。
|
MIRACLE LINUX V3.0での利用
|
MIRACLE LINUX V3.0用に作成したRPMは、以下のURLからダウンロード可能である。
|
|
上記URLから「kernel-smp-2.4.21-20.19AX.lkst1.i686.rpm」および「lkstutils-2.2.1-11AX.i686.rpm」をダウンロードしてシステムにインストールを行う。
|
# rpm -ihv kernel-smp-2.4.21-20.19AX.lkst1.i686.rpm
# rpm -Uhv lkstutils-2.2.1-11AX.i686.rpm
|
また、性能評価機能で取得したデータをグラフ化するために、gnuplotおよびAcrobat Readerが必要となるので、それぞれ、Developer CD、コンパニオン CDからインストールを行っておく。
LKSTの操作に関しては、前回記事(第3回:Linuxカーネルの性能評価機能(LKST)とは)に簡単な説明があるため今回は割愛する。
|
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
|
|
|
著者プロフィール
ミラクル・リナックス株式会社 武田 保真
2001年入社。「MIRACLE LINUX Standard Edition V1.1」から製品開発に携わり今に至る。Samba、Kernelなどのパッケージメンテナンスを経て、最近はAsianuxプロジェクトでの製品開発が主な業務。気になったことにはすぐ手を出すために、一時期はインストーラも担当していたほど、ミラクルの何でも屋担当。
|
|
|
|