説明

情報処理装置およびカーネルパラメータの最適化方法

【課題】複数の使用方法を持つシステムにおいて、最適化処理により得られたカーネルパラメータを含む探索履歴を有効に利用することができる情報処理装置を提供することを目的とする。
【解決手段】使用方法2(202)から使用方法1(203)に使用方法変更を検出したら、最適化処理を停止して、それまでの最適化処理により得られたカーネルパラメータと探索履歴を古い使用方法に対応するものとして保存する(S227)。そして、新しい使用方法の使用方法1(203)に対応するカーネルパラメータと最適化処理の探索履歴を読み出して(S228)、最適化処理を再開する(S229)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カーネルパラメータの最適化処理を行なうことができる情報処理装置に関する。
【背景技術】
【0002】
コンピュータシステムの処理性能を発揮させる方法としては、主に二つの方法がある。ひとつ(前者)は、CPU、メモリなどのハードウェアリソースをアプリケーションに最適に割り当てる方法である。もうひとつ(後者)は、カーネルパラメータの最適値を設定する方法である。ここで、処理性能とは、バッチ処理、オンライン・トランザクション処理とを考慮して、単位時間あたりに処理したバッチの個数に係数を乗じたものと、単位時間あたりに処理したオンライン・トランザクションの個数に別の係数を乗じたものの和である。それぞれの係数は、バッチ処理、オンライン・トランザクション処理のどちらを優先するかにより決定する。バッチ処理を優先するならば、バッチの個数に乗ずる係数を大きくし、オンライン・トランザクション処理を優先するならば、オンライン・トランザクションの個数に乗ずる係数を大きくする。
【0003】
ここで、カーネル(Kernel)とは、階層型に設計されたOS(オペレーティングシステム)の中核となる部分である。コンピュータ(情報処理装置)システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。カーネルパラメータは、OSの動作条件を指定するパラメータである。
【0004】
カーネルパラメータには、例えば、Hyper−Threading機能(マイクロプロセッサの高速化技術であり、プロセッサの空き時間を有効利用して一つのプロセッサを二つのプロセッサであるかのように見せる技術)のオン・オフを指定するカーネルパラメータ、システム全体で同時に存在できる共有メモリの最大数を指定するカーネルパラメータ、システム全体で同時に存在できるプロセスの最大数を指定するカーネルパラメータ、入出力を行なうためのバッファをメインメモリの何パーセントまで拡張できるか指定するカーネルパラメータなどがある。
【0005】
前者の従来技術として、情報処理装置のプロセス制御において、情報処理装置で所定のプロセスが起動したことを検知し、このプロセスが予め定められた制御対象プロセスか否かを判断し、システム全体のCPU使用率を取得し、予め定められたシステム全体のCPU使用率の目標値と比較して制御対象プロセスの停止・実行再開を制御することにより、CPU使用率を効果的かつ迅速に制御し、ユーザアクセスやファイルアクセスにおけるレスポンスの悪化を抑制する方法が開示されている(例えば、特許文献1参照)。
【0006】
また、後者の従来技術として、現在のシステム構成を認識して記憶し、各種システム状態をチェックし、現状のシステムパラメータから新しく再設定するシステムパラメータを算出、記録、設定することにより、システムパラメータ再設定を自動化することで、システム変更時のシステムパラメータ再設定の作業をなくし、さらに設定誤りをなくすことで、処理性能を発揮する方法が開示されている(例えば、特許文献2参照)。
【特許文献1】特開2007−18282号公報
【特許文献2】特開平11−134223号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
特許文献1においては、システム全体のCPU使用率に応じて制御対象プロセスの停止・実行再開を制御するものであるが、カーネルパラメータの最適化処理については述べられていない。
【0008】
特許文献2においては、ネットワークファイルシステムを例にして、システム構成が変更になった際のカーネルパラメータの最適化方法について述べている。しかしながら、システムの使用方法が変更されるたびに、それまでに行なった最適化処理により得られたカーネルパラメータを含む探索履歴が無駄となることへの対処については述べられていない。
【0009】
このカーネルパラメータの最適値を設定する方法には、主に三つの方法がある。(1)アプリケーションごとに公開されている推奨値を設定する。(2)ユーザが経験に基づいて最適なカーネルパラメータを設定する。(3)カーネルパラメータの最適化処理を行なうことである。従来(1),(2)の方法では、処理する内容によっては、十分に処理性能が発揮できない問題があった。
【0010】
また、(3)の方法も検討はされているが、一般に、OSには200個以上のカーネルパラメータがあり、これらのカーネルパラメータに対して最適な値に設定することは煩雑である問題があった。
【0011】
さらに、昼間はオンライン・トランザクション処理のために使用し、夜はバッチ処理に使用するなど、複数の使用方法で運用するコンピュータシステムがある。カーネルパラメータの最適化処理を、このような使用方法が変わるシステムで行なうと、システムの使用方法に応じて、カーネルパラメータの最適値が異なるため、システムの使用方法が変わるたびに、それまでに行なった最適化処理により得られたカーネルパラメータを含む探索履歴が無駄となる問題があった。
【0012】
本発明は、前記の課題を解決するための発明であって、複数の使用方法を持つシステムにおいて最適化処理により得られたカーネルパラメータを含む探索履歴を有効に利用することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
前記目的を達成するため、情報処理装置は、使用方法の変更を検出したとき、最適化処理を停止して、それまでの最適化処理により得られたカーネルパラメータを含む探索履歴を、使用方法の変更の検出前の探索履歴として保存する。そして、使用方法の変更の検出後の使用方法について、以前保存したカーネルパラメータを含む探索履歴を読み出して、最適化処理を再開する。
【発明の効果】
【0014】
本発明によれば、使用方法毎に最適化処理の探索履歴を保存することにより、システムの使用方法が変更されても、それまでに行なってきた最適化処理により得られた探索履歴を有効に利用(無駄とならないように)することができる。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施形態について、図面を参照して説明する。
図1は、情報処理装置のハードウェア構成の例を示すブロック図である。情報処理装置(サーバ)100は、プロセッサ(CPU)110、メモリ120、入出力インタフェース140、通信インタフェース150、およびこれらを接続するバス151などから構成される。サーバ100は、通信インタフェース150を介してLAN、WANなどのネットワーク170に接続される。また、サーバ100の記憶装置160は、ハードディスクドライブなどで構成され、入出力インタフェース140を介して接続される。プロセッサ110は、メモリ120に格納される各種プログラムを実行する。記憶装置160は、サーバ100が処理を実行するための各種データを保存する。メモリ120は、プロセッサ110が処理を実行する各種プログラムおよび一時的なデータを保持する。
【0016】
メモリ120に格納されたプログラム130は、初期化部131、監視部132、稼働中プロセスリスト作成部133、最適化管理部134、および探索履歴管理部135から構成される。初期化部131、監視部132、稼働中プロセスリスト作成部133、最適化管理部134、および探索履歴管理部135は、プログラム130をプロセッサ110が実行することで、初期化、監視、稼働中プロセスリスト作成、最適化管理、探索履歴管理の各処理を行なう。
【0017】
記憶装置160に格納された、プロセステーブル161、稼働中プロセスリスト162、前回の稼働中プロセスリスト163、稼働中プロセス判定テーブル164、探索履歴テーブル165、最適化中フラグ166、1分フラグ167、5分フラグ168、15分フラグ169は、プログラム130が初期化、監視、稼働中プロセスリスト作成、最適化管理、探索履歴管理の各処理を行なう際に利用する。
【0018】
最適化中フラグ166は、カーネルパラメータの最適化処理を開始する直前にオンにし、最適化処理を終了する直前にオフにしている。このため、最適化中フラグのオン、オフを判定することにより、最適を実施中か否かを判定できる。
【0019】
1分フラグ167、5分フラグ168、15分フラグ169は、それぞれ、後記する判定のステップS521、ステップS523、ステップS525(図5参照)の判定結果を保存するために使用する。
【0020】
初期化、監視、稼働中プロセスリスト作成、最適化管理、探索履歴管理などの各処理は、プログラム130をプロセッサ110で実行することにより実現するが、これらは初期化部131、監視部132、稼働中プロセスリスト作成部133、最適化管理部134、探索履歴管理部135など、各処理を行なう処理部として集積回路化するなどしてハードウェアで実現することもできる。
【0021】
以下説明を簡略化するため、プログラム130をプロセッサ110が実行することで実現される各処理部を各処理の主体として説明する。なお各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行なう。
【0022】
図2は、本発明の使用方法と効果を示す説明図である。グラフはある情報処理システム(以下、システムという。)の経過時間と処理性能の関係を示している。横軸に時間をとり、縦軸に処理性能を示す。実線211〜216が処理性能の時間変化を示す。ここでは例として、システムの使用方法が、使用方法1(201)、使用方法2(202)、使用方法1(203)と変化する場合を示しているが、必ずしもこのような順序で動作する必要はない。
【0023】
例えば、昼間はオンライン・トランザクション処理のために使用し、夜はバッチ処理に使用するなど、複数の使用方法で運用する場合を考慮した場合のシステムを考えると、使用方法1(201または203)は、オンライン・トランザクション処理に対応し、使用方法2(202)は、バッチ処理に対応する。必ずしもこの処理に限定されるものではない。
【0024】
まず、本発明の使用方法について説明する。
システムは、使用方法1(201)の開始を検知すると、それまでの最適化処理の探索履歴を保存する(ステップS221)。次に、使用方法1の最適化処理の探索履歴を読み出す(ステップS222)。そして最適化処理を行なう(ステップS223)。
【0025】
システムは、使用方法2(202)の開始を検知すると、使用方法1の最適化処理の探索履歴を保存する(ステップS224)。次に、使用方法2の最適化処理の探索履歴を読み出す(ステップS225)。そして最適化処理を行なう(ステップS226)。
【0026】
システムは、使用方法1(203)の開始を検知すると、使用方法2の最適化処理の探索履歴を保存する(ステップS227)。次に、使用方法1の最適化処理の探索履歴を読み出す(ステップS228)。そして最適化処理を行なう(ステップS229)。
【0027】
処理性能をみてみると、実線211では、最適化処理を行なっていないため、性能は低いレベルで一定である。実線212では、使用方法1(201)で行なった最適化処理によって性能が向上している。実線213では、使用方法が変わったため、性能が実線212の最後の性能よりも下がった。その後、最適化処理を行なっていないため、性能は低いレベルで一定である。このように、使用方法が、使用方法1(201)から使用方法2(202)に変わったため、性能が下がっている。このため、システムは、使用方法2(202)に適した最適化処理を行なう。実線214では、最適化処理により性能が向上している。実線215では、使用方法が変わったため、処理性能が、実線214の最後の性能よりも下がった。使用方法1に最適なカーネルパラメータに変更していないため、実線212の最後の性能よりも下がっている。その後、最適化処理を行なっていないので、性能は一定である。実線216では、使用方法1(201)の時に行なった最適化処理の探索履歴を読み出している(ステップS228)ため、前回の使用方法1(201)での最適化処理終了時の性能と同等の性能から最適化処理を再開することができる。最適化処理により性能が向上している。
【0028】
ここで、使用方法1(201)、使用方法2(202)は、例えば、以下のようなソフトウェアを一つあるいは複数同時に使用している状態を意味する。
・ジョブ管理ソフトウェア
・バックアップソフトウェア
・オンライン・トランザクション処理ソフトウェア
・データベースソフトウェア
【0029】
ステップS223、ステップS226、およびステップS229の最適化方法には、山登り法(HC:Hill Climbing)、焼きなまし法(SA:Simulated Annealing)、遺伝的アルゴリズム(GA:Genetic Algorithm)などが考えられる。
【0030】
それぞれの最適化アルゴリズムの概要について、以下に説明する。
山登り法とは、現在の状態の近傍において、最も処理性能が高くなる状態へ変化することを繰り返し、最適化を進める方法である。焼きなまし法とは、山登り法に近いが、別途「温度」というパラメータを用意し、「温度」が高い間は、処理性能が低くなる状態への変化を許し、「温度」が0になったら、山登り法に移行する方法である。遺伝的アルゴリズムとは、複数の状態を用意し、個々の状態に対して、処理性能に基いて、選択、交叉、突然変異のいずれかを実施し最適値を探索する方法である。
【0031】
以下、カーネルパラメータの最適化処理における各方法の利用方法について説明する。
山登り法では、複数のカーネルパラメータの組み合わせを少しずつ変えながら性能が最も向上するカーネルパラメータの組み合わせを探索する。
【0032】
焼きなまし法では、「温度」が高い間は、処理性能が低くなるカーネルパラメータの組み合わせへの変化を許し、「温度」が0になったら、山登り法に移行する方法である。
【0033】
遺伝的アルゴリズムでは、現世代として「カーネルパラメータの組み合わせ」の集団を用意し、それぞれの「カーネルパラメータの組み合わせ」について性能を評価し、その性能に基づいて以下の三つのいずれかの処理をおこなって、次世代の集団を形成していく。
・選択(現世代の「カーネルパラメータの組み合わせ」を次世代にそのまま残す。)
・交叉(個々のカーネルパラメータを、現世代の二つ「カーネルパラメータの組み合わせ」のそれぞれからランダムに取得し「カーネルパラメータの組み合わせ」をつくり、次世代に移す。)
・突然変異(カーネルパラメータの一部をランダムに変更した新しい「カーネルパラメータの組み合わせ」を作り、次世代に移す。)
この世代交代を繰り返し、最適化処理を進める。
【0034】
本実施形態では山登り法を例にとり説明する。山登り法では、探索履歴は、「カーネルパラメータの組み合わせ」と同じになる。
【0035】
図11は、プロセステーブルの一例を示す説明図である。記憶装置160に格納されたプロセステーブル161には、プロセス(1110)、CPU110の平均負荷(1120)、ネットワークの平均負荷(1130)、ディスクアクセスの平均負荷(1140)が格納されている。プロセス毎とプロセス合計の、CPU110の平均負荷1分/5分/15分とネットワークの平均負荷1分/5分/15分と、ディスクアクセスの平均負荷1分/5分/15分が格納されている。行1150には、全てのプロセスの平均負荷の合計が格納されている。なお、平均負荷1分/5分/15分は、1分間の平均負荷、5分間の平均負荷、15分間の平均負荷を意味する。
【0036】
このプロセステーブル161は、UNIX(登録商標)ではコマンドsar(1M)などで得た情報を基に作成する。ネットワークアクセス負荷は、得られたネットワーク転送速度を、その情報処理装置の最大ネットワーク転送速度で割って得る。ディスクアクセス負荷は、得られたディスクアクセス転送速度を、その情報処理装置の最大ディスクアクセス転送速度で割って得る。これにより、稼働中プロセス判定テーブル164において、最大ネットワークアクセス転送速度、最大ディスクアクセス転送速度に依存しない閾値を設定できる。
【0037】
図12は、稼働中プロセスリストの一例を示す説明図である。記憶装置160に格納された稼働中プロセスリスト162には、稼働していると稼働中プロセスリスト作成部133が判断したプロセスが格納されている。本実施形態において、システムの使用方法は、稼働中プロセスリスト162によって区別する。具体的には、稼働中プロセスリスト162によって、稼働中プロセスは、プロセスA、プロセスC、およびプロセスEであることがわかる。
【0038】
図13は、前回の稼働中プロセスリストの一例を示す説明図である。記憶装置160に格納された「前回の稼働中プロセスリスト163」には、最適化管理部134が保存した前回の「稼働中プロセスリスト162」が格納されている。この「前回の稼働中プロセスリスト163」は、稼働中プロセスリスト162と比較することにより、稼働中プロセスリスト162が更新されたか否か、つまり使用方法が変わったか否かを判定するために使用する。具体的には、前回の稼働中プロセスリスト163によって、前回の稼働中プロセスは、プロセスAおよびプロセスCであることがわかる。
【0039】
図14は、稼働中プロセス判定テーブルの一例を示す説明図である。記憶装置160に格納された稼働中プロセス判定テーブル164は、プロセスが稼働中か否かを判定するために使用する。稼働中プロセス判定テーブル164には、1分/5分/15分に対する、CPUの平均負荷1410、ネットワークの平均負荷1420、ディスクアクセスの平均負荷1430に対する各々の閾値1440が格納されている。プロセステーブル161の合計1150が閾値1440を超えた場合に、プロセスが稼働していると判定する。
【0040】
稼働中プロセス判定テーブル164への閾値の設定方針について以下に記す。具体的には、CPUの平均負荷1410の1分に対する閾値は、バッチ処理を検出することを想定しているため、90%のような高い閾値を設定することが望ましい。一方、15分に対する閾値は、オンライン・トランザクション処理を検出することを想定しているため、30%のような低い閾値を設定することが望ましい。5分に対する閾値は、バッチ処理、オンライン・トランザクション処理の中間的な処理を検出することを想定しているため、中間的な60%のような閾値を設定するのが望ましい。
【0041】
図15は、探索履歴テーブルの一例を示す説明図である。記憶装置160に格納された探索履歴テーブル165には、各種のプロセスリストに対応する探索履歴1520が格納されている。各種のプロセスリストには、稼働中プロセスリスト162に対応するプロセスリスト1510、他の使用方法のプロセスリスト1512,1514、オンライン・トランザクション処理のデフォルト1530、バッチ処理のデフォルト1540、その他の処理のデフォルト1550が格納されている。
【0042】
探索履歴テーブル165へのデフォルトの設定方針について以下に記す。オンライン・トランザクション処理のデフォルト1530としてはオンライン・トランザクション処理に対するカーネルパラメータの推奨値を設定する。バッチ処理のデフォルト1540としてはバッチ処理に対するカーネルパラメータの推奨値を設定する。その他の処理のデフォルト1550としてはオンライン・トランザクション処理とバッチ処理のそれぞれ対するカーネルパラメータの推奨値の中間的な値をデフォルトとして設定する。
【0043】
山登り法では、探索履歴はカーネルパラメータの組み合わせで表されている。焼きなまし法では、探索履歴として、前記のカーネルパラメータに加えて温度が格納される。遺伝的アルゴリズムでは、探索履歴として「カーネルパラメータの組み合わせ」の集合が格納される。このように、探索履歴1520とは最適化方法に依存する。
【0044】
ここで、プロセスリスト1510とは、稼働中プロセスリスト162と同じものであり、本テーブルには、各種のプロセスリスト毎の最適化処理の探索履歴1520のカーネルパラメータを保存する。最適化処理を中断するときに、探索履歴テーブル165に探索履歴1520を保存し、最適化処理を再開するときに、探索履歴テーブル165から探索履歴1520を読み出す。山登り法では、この探索履歴は、再開する最適化処理が最適なカーネルパラメータを探索する際の初期値となる。
【0045】
図3は、初期化部の処理を示すフローチャートである。適宜図1を参照して説明する。初期化部131では、プログラム130が使用するテーブル、リスト、フラグの初期化を行なう。初期化部131の起動は、システムの開始時である。
【0046】
初期化部131は、まず、前回の稼働中プロセスリスト163を空にする(ステップS310)。次に、稼働中プロセス判定テーブル164を作成する(ステップS320)。次に、探索履歴テーブル165に、オンライン・トランザクション処理のデフォルト1530、バッチ処理のデフォルト1540、その他の処理のデフォルト1550を登録する(ステップS330)。そして、最適化中フラグ166をオフにする(ステップS340)。そして監視部132(図4参照)を起動し(ステップS350)、一連の処理を終了する。
【0047】
図4は、監視部の処理を示すフローチャートである。適宜図1を参照して説明する。監視部132では、稼働中プロセスリスト162が更新されたか否かを判定することにより、システムの使用方法が変更されたか否かを監視する。
【0048】
監視部132は、所定の時間を待つ(ステップS410)。ステップS410は、所定の時間、次の処理に移るまで待ち、次の処理に移るまでのタイマーの役割を果たす。次に、プロセステーブル161を作成する(ステップS420)。次に、稼働中プロセスリスト作成部133(図5参照)を起動して(ステップS430)、稼働中プロセスリストを作成する。そして、使用方法が変更されたか確認するために、稼働中プロセスリスト162と前回の稼働中プロセスリスト163と比較し、比較結果が等しいか否かを判定する(ステップS450)。比較結果が等しいならば(ステップS450,Yes)、ステップS410へ戻る。比較結果が等しくないならば(ステップS450,No)、稼働中プロセスリスト162を前回の稼働中プロセスリスト163として保存し(ステップS460)、最適化管理部134(図6参照)を起動する(ステップS470)。そして、ステップS410へ戻る。
【0049】
図5は、稼働中プロセスリスト作成部の処理を示すフローチャートである。適宜図1を参照して説明する。稼働中プロセスリスト作成部133では稼働中プロセスリスト162を作成する。
【0050】
稼働中プロセスリスト作成部133は、最初に、稼働中プロセスリスト162を空にし、1分フラグ167、5分フラグ168、15分フラグ169をオフにする(ステップS510)。次に、全プロセス合計での、過去1分/5分/15分のCPU、ネットワーク、およびディスクアクセスの平均負荷をプロセステーブル161から得る(ステップS515)。次に、過去1分/5分/15分のCPU、ネットワーク、ディスクアクセスの平均負荷の閾値1440を稼働中プロセス判定テーブル164から得る(ステップS520)。
【0051】
CPU、ネットワーク、およびディスクアクセスのいずれかにおいて、過去1分の合計1150が、閾値1440を超えたか否かを判定する(ステップS521)。閾値を越えている場合(ステップS521,Yes)、1分フラグ167をオンにし(ステップS522)、ステップS523へ進む。閾値を超えていない場合(ステップS521,No)、ステップS523へ進む。
【0052】
CPU、ネットワーク、およびディスクアクセスのいずれかにおいて、過去5分の合計1150が、閾値1440を超えたか否かを判定する(ステップS523)。閾値を超えている場合(ステップS523,Yes)、5分フラグ168をオンにし(ステップS524)、ステップS525へ進む。閾値を超えていない場合(ステップS523,No)、ステップS525へ進む。
【0053】
CPU、ネットワーク、およびディスクアクセスのいずれかにおいて、過去15分の合計1150が、閾値1440を超えたか否かを判定する(ステップS525)。閾値を超えている場合(ステップS525,Yes)、15分フラグ169をオンし(ステップS526)、ステップS530へ進む。閾値を超えていない場合(ステップS525,No)、ステップS530へ進む。
【0054】
ステップS530において、稼働中プロセスリスト作成部133は、1分フラグ167、5分フラグ168、および15分フラグ169の全てがオフであるか否かを判定する。
全てのフラグがオフであれば(ステップS530,Yes)、一連の処理を終了する。
【0055】
1分フラグ167、5分フラグ168、および15分フラグ169の全てがオフでなければ(ステップS530,No)、CPU、ネットワーク、およびディスクアクセスの全てにおける、過去1分/5分/15分の全てにおいて、平均負荷の高い順にプロセスを選択し、それらのプロセスの平均負荷の合計値が閾値の80%を超えるまで先頭からプロセスを選択し、稼働中プロセスリスト162に追加する(ステップS540)。最後に、稼働中プロセスリスト作成部133は、重複するプロセスを削除し、プロセス名をアルファベット順で整列して稼働中プロセスリスト162を完成させ(ステップS545)、一連の処理を終了する。
【0056】
図6は、最適化管理部の処理を示すフローチャートである。最適化管理部134では、探索履歴の保存、読み出し、最適化処理の開始、終了を行なう。
【0057】
最適化管理部134は、最適化中フラグ166がオンか否かを判定する(ステップS610)。最適化中フラグ166がオンならば(ステップS610,Yes)、探索履歴を保存する(ステップS620、図8参照)。そして、最適化中フラグ166をオフにして(ステップS630)、最適化処理を終了し(ステップS640)、ステップS650へ進む。
【0058】
最適化中フラグ166がオフならば(ステップS610,No)、最適化処理が行なわれていないため、探索履歴を保存する必要がないので、ステップS650へ進む。稼働中プロセスリスト162が空か否かを判定する(ステップS650)。稼働中プロセスリスト162が空でないならば(ステップS650,No)、つまり稼働しているプロセスが存在するならば、探索履歴を読み出す(ステップS660、図7参照)。そして、最適化中フラグ166をオンにして(ステップS670)、読み出した探索履歴を初期として最適化処理を開始する(ステップS680)。最後に、最適化管理を終了する。
【0059】
稼働中プロセスリストが空である場合(ステップS650,Yes)、稼働しているプロセスが存在しないため、最適化処理は行なわずに、最適化管理を終了する。
【0060】
図7は、探索履歴管理部の探索履歴読み出し処理を示すフローチャートである。探索履歴管理部135は、探索履歴テーブル165から該当するプロセスに対応する探索履歴を読み出す処理をする。
【0061】
探索履歴管理部135は、稼働中プロセスリスト162に対応する探索履歴が探索履歴テーブル165にあるか否かを判定する(ステップS720)。判定結果がYesならば(ステップS720,Yes)、探索履歴テーブル165から稼働中プロセスリスト162に対応する探索履歴1520を読み出す(ステップS730)。そして、一連の処理を終了する。判定結果がNoならば(ステップS720,No)、ステップS740へ進む。
【0062】
ステップS740において、15分フラグ169がオンで、かつ、1分フラグ167と5分フラグ168が両方オフであるか否かを判定する。判定結果がYesならば(ステップS740,Yes)、オンライン・トランザクション処理が開始したと判断し、探索履歴テーブル165からオンライン・トランザクション処理のデフォルト1530の探索履歴1520を読み出す(ステップS750)。そして、一連の処理を終了する。判定結果がNoならば(ステップS740,No)、ステップS760へ進む。
【0063】
ステップS760において、1分フラグ167がオンで、かつ、5分フラグ168と15分フラグ169が両方オフであるか否かを判定する。判定結果がYesならば(判定760、Yes)、バッチ処理が開始したと判断し、探索履歴テーブル165からバッチ処理のデフォルト1540の探索履歴1520を読み出す(ステップS770)。そして、一連の処理を終了する。判定結果がNoならば(ステップS760,No)、ステップS780へ進む。
【0064】
ステップS780において、すなわち、ステップS720、ステップS740、ステップS760に当てはまらない場合には、探索履歴管理部135は、探索履歴テーブル165からその他の処理のデフォルト1550の探索履歴1520を読み出し、一連の処理を終了する。
【0065】
ここで読み出された探索履歴は、中断していたカーネルパラメータの最適化処理を再開するために使用する。
【0066】
図8は、探索履歴管理部の探索履歴保存処理を示すフローチャートである。探索履歴管理部135は、稼働中プロセスリスト162と探索履歴の対応関係を探索履歴テーブル165に保存し、(ステップS810)。探索履歴読み出し処理を終了する。
【0067】
次に、稼働中プロセスの判定方法について説明する。
図9は、オンライン・トランザクション処理のCPU使用率の変化を示す時系列図である。図10は、バッチ処理のCPU使用率の変化を示す時系列図である。図9および図10を参照して、稼働中プロセスの判定方法について説明する。ここでは、オンライン・トランザクション処理とバッチ処理のCPU使用率を例にとり、なぜ過去1分/5分/15分の平均負荷が必要かについて説明する。
【0068】
情報処理装置のデータ処理方法は、大別すると、以下の二つに分類できる。
バッチ処理: データを一定期間あるいは一定量をまとめてから一括して処理を行う方式
オンライン・トランザクション処理: データが発生するごとに順次データをホストに送り処理を行う方式
【0069】
図9に示すように、オンライン・トランザクション処理が稼働している場合、CPU使用率は、常に100%となるわけではなく頻繁に上下動を繰り返す。このため、過去15分間のCPU使用率の平均値では、オンライン・トランザクション処理が稼働したか否かは判定できるが、過去1分間のCPU使用率の平均値では、稼働しているか否かは判定できない。
【0070】
一方、図10に示すように、バッチ処理では、CPU使用率は、100%近くになる。このため、過去15分間でのCPU使用率の平均値だけでなく、過去1分間のCPU使用率の平均値でも、バッチ処理が稼働中か判断できる。
【0071】
15分など長い時間間隔で得られたCPU使用率の平均値を閾値と比較すれば、オンライン・トランザクション処理が稼働中か否かを判定できる。一方、1分など短い時間間隔でCPU使用率の平均値を閾値と比較すれば、バッチ処理が稼働中か否かを判定できる。
【0072】
そこで、オンライン・トランザクション処理とバッチ処理の両方に対応するために、1分間、5分間、15分間の平均値の閾値を設定して処理が稼働中か否か判定する。これにより、プロセスの種類に依存せず稼働中プロセスを判定することができる。
【0073】
なお、図9および図10においては、CPUの使用率について説明したが、ネットワークディスクアクセスを考慮すると、ディスクの使用率、ネットワークの使用率についても同様に考えられる。
【0074】
具体的な適用例として、昼はJava(登録商標)の処理を行ない、夜はI/O(Input/Output)の処理を行なうシステムを考える。Java(登録商標)の性能を向上させるカーネルパラメータとI/O処理の性能を向上させるカーネルパラメータは異なる。このようなシステムにおいて、昼はJava(登録商標)の性能を向上させるカーネルパラメータを中心に、最適化処理を行ない、夜は、I/Oの性能を向上させるカーネルパラメータを中心に最適化処理を行なう。もし、それらの二つの使用方法を区別しないならば、最適値は、Java(登録商標)とI/Oの最適値の間を振動する。あるいは真の最適値が得られない可能性がある。本実施形態によれば、使用方法の変更があった際に、使用方法毎の探索履歴を有効に利用(無駄とならないように)することができる。
【0075】
本実施形態によれば、カーネルパラメータの最適化処理を行なう情報処理装置において、稼働しているプロセスのプロセスリストを作成し、稼働しているプロセスリストの状態を監視するプロセス監視部(例えば、稼働中プロセスリスト作成部133と監視部132)と、プロセスリストとカーネルパラメータの最適化処理の探索履歴とを関連付ける探索履歴情報(例えば、探索履歴テーブル165)を管理する管理部(例えば、探索履歴管理部135)とを備え、プロセス監視部が稼働しているプロセスリストの状態の変更を検知したとき、管理部は、状態の変更前のプロセスリストに対応する探索履歴情報を保存し、状態の変更後のプロセスリストに対応する探索履歴情報を読み出し、管理部は、探索履歴情報を読み出したのち、カーネルパラメータの最適化処理をすることができる。
【0076】
また、管理部は、過去の所定時間において、CPU使用率、ネットワーク使用率、およびディスクアクセス使用率のうち少なくともいずれかの使用率が所定の閾値を超えたときに、初期設定の探索履歴を読み出すことができる。
【0077】
管理部は、過去の第1の所定時間(例えば、過去1分間)において、CPU使用率、ネットワーク使用率、およびディスクアクセス使用率のうち少なくともいずれかの使用率が所定の第1の閾値を超えたときに、バッチ処理に対応する初期設定の探索履歴を読み出し、過去の第2の所定時間(例えば、過去15分間)において、CPU使用率、ネットワーク使用率、およびディスクアクセス使用率のうち少なくともいずれかの使用率が所定の第2の閾値を超えたときに、オンライン・トランザクション処理に対応する初期設定の探索履歴を読み出すことができる。
【図面の簡単な説明】
【0078】
【図1】情報処理装置のハードウェア構成の例を示すブロック図である。
【図2】本発明の使用方法と効果を示す説明図である。
【図3】初期化部の処理を示すフローチャートである。
【図4】監視部の処理を示すフローチャートである。
【図5】稼働中プロセスリスト作成部の処理を示すフローチャートである。
【図6】最適化管理部の処理を示すフローチャートである。
【図7】探索履歴管理部の探索履歴読み出し処理を示すフローチャートである。
【図8】探索履歴管理部の探索履歴保存処理を示すフローチャートである。
【図9】オンライン・トランザクション処理のCPU使用率の変化を示す時系列図である。
【図10】バッチ処理のCPU使用率の変化を示す時系列図である。
【図11】プロセステーブルの一例を示す説明図である。
【図12】稼働中プロセスリストの一例を示す説明図である。
【図13】前回の稼働中プロセスリストの一例を示す説明図である。
【図14】稼働中プロセス判定テーブルの一例を示す説明図である。
【図15】探索履歴テーブルの一例を示す説明図である。
【符号の説明】
【0079】
100 サーバ
110 プロセッサ
120 メモリ
130 プログラム
131 初期化部
132 監視部
133 稼働中プロセスリスト作成部
134 最適化管理部
135 探索履歴管理部
140 入出力インタフェース
150 通信インタフェース
160 記憶装置
161 プロセステーブル
162 稼働中プロセスリスト
163 前回の稼働中プロセスリスト
164 稼働中プロセス判定テーブル
165 探索履歴テーブル
166 最適化中フラグ
167 1分フラグ
168 5分フラグ
169 15分フラグ
170 ネットワーク

【特許請求の範囲】
【請求項1】
カーネルパラメータの最適化処理を行なう情報処理装置において、
稼働しているプロセスのプロセスリストを作成し、稼働している前記プロセスリストの状態を監視するプロセス監視部と、
前記プロセスリストと前記カーネルパラメータの最適化処理の探索履歴とを関連付ける探索履歴情報を管理する管理部とを備え、
前記プロセス監視部が稼働している前記プロセスリストの状態の変更を検知したとき、前記管理部は、状態の変更前のプロセスリストに対応する探索履歴情報を保存し、状態の変更後のプロセスリストに対応する探索履歴情報を読み出す
ことを特徴とする情報処理装置。
【請求項2】
前記管理部は、過去の所定時間において、CPU使用率、ネットワーク使用率、およびディスクアクセス使用率のうち少なくともいずれかの使用率が所定の閾値を超えたときに、初期設定の探索履歴を読み出す
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記管理部は、
過去の第1の所定時間において、CPU使用率、ネットワーク使用率、およびディスクアクセス使用率のうち少なくともいずれかの使用率が所定の第1の閾値を超えたときに、バッチ処理に対応する初期設定の探索履歴を読み出し、
過去の第2の所定時間において、CPU使用率、ネットワーク使用率、およびディスクアクセス使用率のうち少なくともいずれかの使用率が所定の第2の閾値を超えたときに、オンライン・トランザクション処理に対応する初期設定の探索履歴を読み出す
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記管理部は、前記探索履歴情報を読み出したのち、前記カーネルパラメータの最適化処理をする
ことを特徴とする請求項1から請求項3のうちいずれか1項に記載の情報処理装置。
【請求項5】
カーネルパラメータの最適化処理部と、稼働しているプロセスのプロセスリストを作成し稼働している前記プロセスリストの状態を監視するプロセス監視部と、前記プロセスリストと前記カーネルパラメータの最適化処理の探索履歴を関連付ける探索履歴情報を管理する管理部と、を用いるカーネルパラメータの最適化方法において、
前記プロセス監視部が稼働している前記プロセスリストの状態の変更を検知したとき、前記管理部は、状態の変更前のプロセスリストの探索履歴情報を保存し、状態の変更後のプロセスリストに対応する探索履歴情報を読み出し、前記最適化処理部が、前記カーネルパラメータの最適化処理をする
ことを特徴とするカーネルパラメータの最適化方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2009−32110(P2009−32110A)
【公開日】平成21年2月12日(2009.2.12)
【国際特許分類】
【出願番号】特願2007−196581(P2007−196581)
【出願日】平成19年7月27日(2007.7.27)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】