JP4460319B2 - チューニング制御方法及びシステム - Google Patents

チューニング制御方法及びシステム Download PDF

Info

Publication number
JP4460319B2
JP4460319B2 JP2004030038A JP2004030038A JP4460319B2 JP 4460319 B2 JP4460319 B2 JP 4460319B2 JP 2004030038 A JP2004030038 A JP 2004030038A JP 2004030038 A JP2004030038 A JP 2004030038A JP 4460319 B2 JP4460319 B2 JP 4460319B2
Authority
JP
Japan
Prior art keywords
parameter set
performance information
tuning control
unit
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004030038A
Other languages
English (en)
Other versions
JP2005222343A (ja
Inventor
英樹 ▲高▼野
滋 三宅
健史 石崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004030038A priority Critical patent/JP4460319B2/ja
Priority to US11/051,082 priority patent/US20050251801A1/en
Publication of JP2005222343A publication Critical patent/JP2005222343A/ja
Application granted granted Critical
Publication of JP4460319B2 publication Critical patent/JP4460319B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、階層構成をもつ複数のプログラムから構成される多階層システムの動作パラメータを最適化するチューニング方式に関するものである。
企業の統廃合や様々な事業展開の積み重ねにより、それを支える企業情報システムは複雑になってきている。このような環境にあって、少ないコストで高いパフォーマンスを実現するためには、連携して動作する複数のプログラムがバランス良く動作するようにパフォーマンスチューニングを実施することが重要である。
プログラムの動作やハードウェアの動作を詳細に熟知したエキスパートであれば、システムを稼動させたときに計測可能な情報と、その計測情報にある特徴があったときに設定すべきパラメータのルールを予めファジィ推論ベースとして構築することでチューニングを実施することは可能である。例えば特許文献1は、このようなパフォーマンスチューニング方式を開示する。
しかし複雑化したシステム全体を熟知するようなエキスパートはなかなか存在しないし、存在したとしても、チューニングに必要な全てのルールを定義することは非常に困難である。
特開平11−249934号公報
複数のプログラムから構成される多階層システムに対して、各プログラムの最適な動作パラメータを見つけることは困難である。
本発明は、階層構成をもつ複数のプログラムから構成される多階層システムの性能のチューニング制御技術であって、この技術は、計算機によるプログラム実行によって実現され、多階層システムを構成する各プログラムの動作のパラメータを設定し、各プログラムを起動し、多階層システムの性能情報を計測し、多階層システムを構成するプログラム実行中に発生する不定期の処理が実行される時間帯を監視し、計測された性能情報から、不定期の処理が実行される時間帯にかかる性能情報を除外し、各プログラムを停止した後に、性能情報の計測結果に対して次の多階層システムの稼動に用いるパラメータの組合せである次パラメータセットを決定し、この次パラメータセットを決定するステップは、前記時間帯以外の性能情報が最適化されるようにパラメータセットを決定するものとし、所定の終了条件を満たすまで上記のステップを順に繰り返すチューニング制御技術を特徴とする。
本発明によれば、最適な動作パラメータを求めるのが困難な複数のプログラムから構成される多階層システムであっても、誰でも容易に最適なパラメータセットを求めることができる。
図1は、本実施形態のチューニングシステムの構成図である。多階層システム110は、チューニングの対象とするシステムであり、そのシステムの構成要素であるプログラム112−1,112−2,…112−nが稼動する。各プログラム112−1〜112−nは、そのプログラムの動作を設定するための動作パラメータであるパラメータ111−1〜111−nを有する。
これらパラメータをチューニングするためのチューニング制御システムは、チューニング制御部101、実験制御部102、次パラメータセット決定部103、パラメータ設定部104、プログラム起動・停止部105および性能情報計測部106の各プログラムを含む。パラメータ設定部104は、各パラメータ111−1〜111−nに値を設定する。プログラム起動・停止部105は、多階層システム110のプログラム112−1〜112−nを起動、停止するプログラムである。性能情報計測部106は、多階層システム110に対してリクエストを送出するなどして稼動させ、その性能情報を計測する。実験制御部102は、パラメータ設定部104、プログラム起動・停止部105および性能情報計測部106を動作させて、実験を実施するプログラムである。次パラメータセット決定部103は、最適化アルゴリズムを利用し、計測した性能情報に基いて次に実験すべきパラメータを求めるプログラムである。チューニング制御部101は、実験制御部102及び次パラメータセット決定部103を制御してチューニングのための実験を遂行するプログラムである。以下プログラム112−1〜112−nのいずれかを指すときには、プログラム112のように表記することがある。他の構成要素についても同様である。
プログラム112−1〜112−n及びチューニング制御システム側の101から106までの構成要素は、計算機で稼動可能なプログラムであり、1つ又は複数の計算機に配置することができる。図2は、使用される計算機200のハードウェア構成を示す図である。ハードディスク203は、各プログラム又はパラメータなどの各種データを保存する。中央処理装置202は、これらハードディスク203に蓄えた各種データを必要に応じてメモリ201に読み込む。プログラムを実行する場合も、プログラムをまずメモリ201に読み込み、中央処理装置202により実行する。ビデオメモリ204は、表示に用いられるデータを格納するメモリであり、ビデオメモリ204上のデータの変更は、表示装置205に反映される。
図3にチューニングシステムのシーケンス図を示す。チューニング制御部101は、実験制御部102に実験要求を行う。実験制御部102は、パラメータ設定部104にパラメータ設定要求を行う。パラメータ設定部104は、各構成要素のプログラム112−1〜112−nが管理する設定ファイルなどにパラメータを設定する。次に実験制御部102は、プログラム起動・停止部105に対してプログラム起動要求を行い、構成要素のプログラム112−1〜112−nを起動する。次に実験制御部102は、性能情報計測部106に性能情報計測要求を発行する。性能情報計測部106は、プログラム112−1〜112−nを稼動させることによって多階層システム110の性能情報を計測する。ここで多階層システム110は、プログラム112−1〜112−nが実行される1台またはそれ以上の計算機200を稼動させ実際の処理を行う。実験制御部102は、計測した性能情報を取得する。次に実験制御部102は、プログラム起動・停止部105に対してプログラム停止要求を行い、プログラム起動・停止部105は、構成要素のプログラムを停止する。チューニング制御部101は、次パラメータ決定部103に対して次パラメータを要求する。次パラメータセット決定部103は、計測した性能情報を用いて次に実験すべきパラメータセットを求めてチューニング制御部101に返す。チューニング制御部101は、このパラメータを用いて再度実験要求からの処理を繰り返す。チューニング制御部101は、終了条件を満たすまで実験を繰り返すことによって性能計測値が最も良くなるパラメータセットを求める。
図4は、Webシステムに対して性能のチューニングを実施するシステムの構成図である。システムは、Webシステム440、チューニング制御プログラム402を稼動させる計算機401および負荷かけ計算機群420から構成される。Webシステム440は、計算機450、計算機460および計算機470から構成され、これらの計算機はそれぞれネットワークで接続される。計算機450上ではWebサーバ451が稼動し、計算機460上ではAP(アプリケーション)サーバ461が稼動し、計算機470上ではDB(データベース)サーバ471が稼動する。この例では、Webシステム440が3階層の多階層システム110に相当し、Webサーバ451がプログラム112−1に、APサーバ461がプログラム112−2に、DBサーバ471がプログラム112−3に各々相当する。これらのプログラムが連携して動作するWebシステム440がチューニング対象である。負荷かけ計算機群420は、計算機421−1〜421−3から構成される。計算機421−1〜421−3は、各々負荷かけツール431−1〜431−3の各プログラムを稼動させる。負荷かけツール431−1〜431−3の各々は、Webシステム440のWebサーバ451へ同時に多数のリクエストを発行してWebシステム440の各プログラムに負荷をかけ、レスポンスを受け取るまでのレスポンスの状況から性能情報を計測する。すなわち負荷かけツール431−1〜431−3の各々は、性能情報計測部106を含む。チューニング制御プログラム402は、負荷かけ計算機群420およびWebシステム440を制御する。チューニング制御プログラム402は、チューニング制御部101、実験制御部102、次パラメータセット決定部103、パラメータ設定部104およびプログラム起動・停止部105を含む。
実施例1では、チューニングの対象とするパラメータとして、Webサーバ451の最大同時処理数、APサーバ461の最大同時処理数、およびAPサーバ461がDBサーバ471とのコネクションを保持する最大プール数の3つとする。最大同時処理数は、リクエスト発行に対応してそのプログラムで同時に実行されるプロセス、スレッドまたはタスクの最大数である。チューニング制御プログラム402は、Webシステム440の性能を最適にするようなパラメータの組合せ(パラメータセット)を求める。本実施例は、最適化アルゴリズムとして、滑降シンプレックス法を用いる。
図5は、チューニング制御プログラム402の動作を設定する設定ファイルのデータ例を示す図である。最大実験回数(max_experiment_times)は、実験を打切るときの最大実施回数である。パラメータセットは、本実施例では3次元のパラメータ空間上の点によって表現できる。距離(distance)は、最良点のパラメータセットと他の3つのパラメータセットの各々との間の最適化されたときの距離を設定する。この3つの距離がすべてdistanceの設定値以内になったとき、性能情報が最適値に収束したと判断される。初期パラメータセット(init_param.1〜4)は、実験開始時に与えられるパラメータであり、ここではパラメータ数+1だけ用意される。パラメータセットの値は、上記の3つのパラメータを順に設定する。設定ファイルは、計算機401の記憶装置に格納される。
図6は、チューニング制御プログラム402の処理手順を示すPAD(problem analysis diagram
)である。チューニング制御プログラム402のチューニング制御部101は、まず設定ファイルから初期パラメータセットを読み込む(ステップ601)。次にチューニング制御部101は、ステップ603の処理をすべての初期パラメータセットについて繰り返し、性能情報を取得する(ステップ602)。ここでは4つの初期パラメータセットがあるからステップ603を4回繰り返す。性能情報は、スループット又は平均レスポンスタイムである。スループットは、単位時間に実行できるリクエストの数である。平均レスポンスタイムは、負荷かけツール431がリクエストを発行してからレスポンスを受け取るまでの所要時間の平均値である。ステップ603では、チューニング制御部101は、実験制御部102を呼び出す。実験制御部102は、パラメータ設定部104を起動し、Webシステム440に初期パラメータセットを設定し、Webシステム440を稼動して性能情報を取得する実験を行う。
次にチューニング制御部101は、終了条件に達するまでステップ605とステップ606の処理を繰り返し実行するよう制御する(ステップ604)。ここで終了条件とは、上記の距離の条件を満足するか、または実験回数が最大実験回数に達することである。ステップ605では、チューニング制御部101は、次パラメータセット決定部103を起動する。次パラメータセット決定部103は、先の実験結果から次の実験のためのパラメータセットを決定する。パラメータセットの決定には滑降シンプレックス法が適用される。ステップ606では、ステップ603と同様に、チューニング制御部101は、実験制御部102を呼び出す。実験制御部102は、パラメータ設定部104を起動し、決定された次パラメータセットをWebシステム440に設定し、Webシステム440を稼動して性能情報を取得する実験を行う。終了条件に達したとき、チューニング制御部101は、こまで計測した中で性能情報が最良であったパラメータセットを最適なパラメータセットとして表示装置205に出力する(ステップ607)。
図7は、ステップ603およびステップ606の処理のシーケンスを示す図である。実験制御部102は、パラメータ設定部104を介してWebサーバ451、APサーバ461およびDBサーバ471に各々パラメータを設定する。次に実験制御部102は、プログラム起動・停止部105を介してDBサーバ471、APサーバ461およびWebサーバ451の順で各プログラムを起動する。次に実験制御部102は、負荷かけツール431−1〜431−3に対して負荷かけを要求する。負荷かけツール431−1〜431−3は、Webシステム440に繰り返しリクエストを発行する。各負荷かけツール431は、複数スレッドを用いてほぼ同時に複数のリクエストを発行する。性能情報計測部106は、返ってきたレスポンスの時刻から性能情報を算出し、算出された性能情報を実験制御部102に報告する。次に実験制御部102は、プログラム起動・停止部105を介してWebサーバ451、APサーバ461およびDBサーバ471の各プログラムを停止する。後述するようにステップ605で複数の次パラメータセットが決定された場合には、次パラメータセットの数だけ実験を繰り返す。
図8は、ステップ605の次パラメータセットを決定する処理の手順を示すPADである。次パラメータセット決定部103は、実験に用いたパラメータセット及び計測した性能情報を取得する(ステップ801)。以下に述べるように収縮の場合には、複数のパラメータセットと各々に対応する性能情報を取得する。次に次パラメータセット決定部103は、パラメータセット群の各パラメータセットを性能情報が良い順に配列に格納する(ステップ802)。従って配列の先頭には最良点のパラメータセットが配置される。性能情報がより良いとは、スループットの場合にはスループットがより大きいことである。レスポンスタイムの場合にはレスポンスタイムがより小さいことである。ここでパラメータセット群とは、滑降シンプレックス法で用いるパラメータ数+1個のパラメータセットのことである。今の例ではパラメータセット群は4個のパラメータセットから成る。すでに配列にパラメータセット群が格納されている場合には、この例では既存のパラメータセット群とステップ801で取得したパラメータセットのうち性能情報が良いもの4個を選択してこの配列に再格納する。次に次パラメータセットを保持するバッファを作成する(ステップ803)。次に次パラメータセット決定部103は、実験の種類を取得し、そのバッファに格納する(ステップ804)。初期状態における実験の種類は、「null」が格納される。
実験の種類が「null」であった場合(ステップ810)、次パラメータセット決定部103は、実験の種類を「反射」に変更し(ステップ811)、後述の手順によってパラメータ空間上の今対象としている点の2倍反射の点を求める(ステップ812)。このときの引数は−1.0である。次に次パラメータセットのバッファに反射の位置を格納する(ステップ813)。次に次パラメータセット決定部103は、チューニング制御部101に次パラメータセットを返す(ステップ860)。
実験の種類が「反射」であった場合(ステップ820)、反射の位置の性能情報が最悪点よりも良い場合(ステップ821YES)、次パラメータセット決定部103は、最悪点を反射の位置の点に置き換える(ステップ823)。反射の位置の性能情報が最良点よりも良い場合(ステップ823YES)、次パラメータセット決定部103は、実験の種類を「2倍反射」に変更する(ステップ824)。次に後述の手順によってパラメータ空間上の4点のうちの最悪点の2倍反射の位置を求める(ステップ812)。このときの引数は−2.0である。次に次パラメータセット決定部103は、次パラメータセットのバッファに2倍反射の位置を格納する(ステップ825)。
反射の位置の性能情報が最良点よりも悪い場合(ステップ823NO)で、反射の位置の性能情報が2番目に悪い点より悪い場合(ステップ826YES)、次パラメータセット決定部103は、実験の種類を「内側反射」に変更する(ステップ827)。次に後述の手順によってパラメータ空間上の4点のうちの最悪点の内側反射の位置を求める(ステップ812)。このときの引数は0.5である。次に次パラメータセット決定部103は、次パラメータセットのバッファに内側反射の位置を格納する(ステップ828)。反射の位置の性能情報が2番目に悪い点と同じかより良い場合(ステップ826NO)、実験の種類を「null」に変更し、もう一度、次パラメータセットの決定(ステップ605)を実行する。
実験の種類が「2倍反射」であった場合(ステップ830)、2倍反射の位置の性能情報が最悪点よりも良いならば(ステップ831)、次パラメータセット決定部103は、最悪点を2倍反射の位置の点に置き換える(ステップ833)。次に次パラメータセット決定部103は、実験の種類を「null」に変更し、もう一度、次パラメータセットの決定(ステップ605)を実行する。
実験の種類が「内側反射」であった場合(ステップ840)、内側反射の位置の性能情報が最悪点より良いならば(ステップ841YES)、次パラメータセット決定部103は、最悪点を内部反射の位置の点に置き換える(ステップ842)。次に次パラメータセット決定部103は、実験の種類を「null」に変更し(ステップ843)、もう一度、次パラメータセットの決定(ステップ605)を実行する。内側反射の位置の性能情報が最悪点よりも悪ければ(ステップ841NO)、次パラメータセット決定部103は、実験の種類を「収縮」に変更する(ステップ844)。次に後述の手順によってパラメータ空間上の4点から収縮の位置を求める(ステップ845)。このときの引数は0.5である。次に次パラメータセット決定部103は、次パラメータセットのバッファに収縮の点の位置(複数)を格納する(ステップ846)。
実験の種類が「収縮」であった場合(ステップ850)、次パラメータセット決定部103は、最良点以外の点を収縮の位置の点に置き換える(ステップ851)。次に次パラメータセット決定部103は、実験の種類を「null」に変更し(ステップ852)、もう一度、次パラメータセットの決定(ステップ605)を実行する。
各処理ステップから最後のステップ860に達したとき、次パラメータセット決定部103は、チューニング制御部101に次パラメータセットを返す。
図9は、ステップ812の反射の位置を求める処理の手順を示すPADである。ここでは、簡単のためにパラメータセット群が(a1,b1,c1) (a2,b2,c2) (a3,b3,c3) (a4,b4,c4)で、この中の最悪点が(a2,b2,c2)であった場合について説明する。引数としてfacを取る。これは反射の距離を表す引数であり、「反射」の位置の場合は−1.0、「2倍反射」の場合は−2.0、「内側反射」の場合は0.5を取る。以下の手順で計算する。
a=a1+a2+a3+a4 (数1)
b=b1+b2+b3+b4 (数2)
c=c1+c2+c3+c4 (数3)
fac1=(1.0-fac)/3 (3はパラメータ数) (数4)
fac2=fac1-fac (数5)
ar=a×ac1-a2×fac2 (数6)
br=b×fac1-b2×fac2 (数7)
cr=c×fac1-c2×fac2 (数8)
(ar,br,cr)が反射の位置の点になる。
図10は、ステップ845の収縮の位置を求める処理の手順を示すPADである。ここでは、簡単のためにパラメータセット群が(a1,b1,c1) (a2,b2,c2) (a3,b3,c3) (a4,b4,c4)で、この中の最良点が(a1,b1,c1)であった場合について説明する。引数として、facを取る。「収縮」の場合は、facは0.5となる。
ar1=fac×(a2+a1) (数9)
br1=fac×(b2+b1) (数10)
cr1=fac×(c2+c1) (数11)
ar2=fac×(a3+a1) (数12)
br2=fac×(b3+b1) (数13)
cr2=fac×(c3+c1) (数14)
ar3=fac×(a4+a1) (数15)
br3=fac×(b4+b1) (数16)
cr3=fac×(c4+c1) (数17)
以上から求まった(ar1,br1,cr1) (ar2,br2,cr2) (ar3,br3,cr3)の3点が収縮の位置となる。
実施例1において、複数回の実験に亘って最良点が同じ点であった場合、最良点が本当の最良点か、実験の結果として偶然良い結果が出てしまったのか不明というケースがある。実施例2は、その最良点のパラメータセットを用いてもう一度実験し、計測した性能情報と前回の最良点の性能情報の平均を、その点の最良点とするものである。
図11は、実施例2のチューニング制御プログラム402の動作を設定する設定ファイルのデータ例を示す図である。実施例1の設定ファイルの例と比べて最良点であり続けた回数(top_times)という設定項目が加わっている。
図12は、実施例2のチューニング制御プログラム402の処理手順を示すPADである。ステップ601〜603の処理の後に、チューニング制御部101は、前回最良点のパラメータセット及び前回性能情報を格納するバッファを用意する(ステップ1201)。次にチューニング制御部101は、最良点であり続けた回数を計数するカウンタを用意する(ステップ1202)。カウンタの初期値は0である。次にチューニング制御部101は、終了条件に達するまでステップ1203〜1207(ステップ606も含む)の処理を繰り返し実行するよう制御する(ステップ604)。
前回の最良点がある場合に、前回の最良点と今回の最良点が同じであれば(ステップ1203YES)、チューニング制御部101は、カウンタに1を加算する(ステップ1204)。次にカウンタが回数(top_times)より大きければ(ステップ1205)、次パラメータセットとして最良点のパラメータセットを再び次の実験に採用する(ステップ1206)。ステップ606では、チューニング制御部101は、次パラメータセット決定部103を起動し、同一パラメータセットの実験をもう一度行う。実験の結果として性能情報が前回と同じとは限らない。次にチューニング制御部101は、前回の性能情報と今回の性能情報の平均を取り、今回実験したパラメータセットの性能情報とする(ステップ1207)。前回の最良点がないか、前回の最良点と今回の最良点が異なれば(ステップ1203NO)、チューニング制御部101は、バッファ中の前回の最良点のパラメータセット及び前回の性能情報を今回の最良点のパラメータセット及び性能情報に置き換える(ステップ1208)。前回の最良点がなければ、単にバッファに今回の最良点のパラメータセットとその性能情報を格納するだけである。次にチューニング制御部101は、カウンタを0に初期化する(ステップ1209)。
実施例2によって滞留していた一時的な最良点から脱出し、本当の最良点に向かうことができる場合がある。
実施例3は、初期実験をパラメータ数+1回より多く行うことによって、最適解への収束を速くすることを目指すチューニング方法の実施例である。
図13は、実施例3のチューニング制御プログラム402の動作を設定する設定ファイルのデータ例を示す図である。この例は、初期パラメータセットとして、init_param.1〜init_param.10までの10個のパラメータセットを設定する。
図14は、実施例3のチューニング制御プログラム402の処理手順を示すPADである。チューニング制御部101は、ステップ603の処理をすべての初期パラメータセットについて繰り返し、性能情報を取得する(ステップ602)。ここでは10個の初期パラメータセットがあるからステップ603を10回繰り返す。次にチューニング制御部101は、性能情報が良い順にパラメータ数+1個のパラメータセットを抜き出し、これらをパラメータセット群とする。以下、ステップ604〜607は、実施例1と同様である。
JavaVMのような実行基盤の下で多階層システム110のプログラム112が実行される場合に、不要部分の整理(Garbage Collection(GC))のような不定期の処理が実行されることがある。実施例4は、このような不定期の処理が実行される時間帯にかかる性能計測結果をサンプリング対象から除外する実施例である。(注)Javaは、米国Sun Microsystems社の登録商標である。
実施例4は、チューニング対象のWebシステム440のうち、APサーバ461がJavaVMを利用し、不定期にGCが発生する場合を例にとる。Webシステム440は、GC監視機能をもつプログラムを設け、JavaVMからGCが発生した時刻、終了した時刻を計測し、その情報を記憶装置に保持する。
図15は、実施例4のステップ603およびステップ606の処理のシーケンスを示す図である。GC監視プログラム1500は、GCの発生時刻および終了時刻を計測し、その情報を保持する。負荷かけツール431は、リクエストの送出の繰り返し実行が終ったとき、実験制御部102に各リクエストの実行情報を返す。この実行情報は、各リクエストの発生時刻および返ってきたレスポンスの時刻を含んでいる。次に実験制御部102は、各リクエストの実行情報とGCの発生時刻、終了時刻からGCの発生していない時間帯のリクエストの実行情報のみから性能情報を作成する。
実施例5は、次パラメータセット決定部103が導き出すパラメータの値を2の倍数、3の倍数というように特定の数の倍数となるように補正する実施例である。これによってパラメータセットは早く最適解付近の解に収束することが可能となる。
図16は、実施例5のチューニング制御プログラム402の動作を設定する設定ファイルのデータ例を示す図である。この例は、実施例1のデータ例にパラメータの取り得る値の粒度(param_step)を追加する。この例は粒度を3とするので、パラメータは3の倍数のみを取り得る。ただしこの例では初期パラメータは、実施例1と同じデータを用いており、3の倍数に限定していない。
次パラメータセット決定部103は、チューニング制御部101に次のパラメータセットを返す前に、パラメータがparam_stepで指定された値の倍数となるように補正する。その補正方法は、例えば算出されたパラメータセットの各パラメータの値をparam_stepで割った後に四捨五入又は小数点以下切捨てなどをして整数にした後、その値にparam_stepを掛けることによって次パラメータの値を求めるものである。あるいはその他の例として、算出されたパラメータセットの各パラメータの値をparam_stepで割って得られた余りを元の値から引くという方法もある。
実施例6は、次パラメータセット決定部103が導き出すパラメータセットが最良点のパラメータセットと同じであったとき、そのパラメータセットの各パラメータの値をランダムに微小量だけ増減するように補正する実施例である。微小量は例えば+1もしくは−1などである。これによって最良点付近を詳細に探索することが可能となる。
図17は、実施例6の次パラメータセットを決定する処理(ステップ605)の手順を示すPADである。次パラメータセット決定部103は、ステップ860の処理の前に、次パラメータセットと最良点のパラメータセットが同じ場合(ステップ1701)、次パラメータセットのすべての点のパラメータ値をランダムに+1もしくは−1増減する処理を行う(ステップ1702)。
本実施形態によれば、多階層システムの運用を開始する前、ハードウェアのリプレースなどの構成変更時、稼動するアプリケーションの変更時などに、誰でも容易に最適なチューニングを行うことが可能となる。本発明は、最近、重要度が増してきているWebシステムのチューニングにも適用できる。チューニングの対象とするパラメータとして、Webサーバ、APサーバ、DBサーバの最大同時処理数のほかに、各サーバの保持するキューに関して最大キュー数をチューニングすることも可能である。
実施形態のチューニングシステムの構成図である。 計算機のハードウェア構成を示す図である。 チューニングのシーケンスを示す図である。 Webシステムをチューニングする場合のシステム構成図である。 チューニング制御プログラムが用いる設定ファイルの例を示す図である。 実施例1のチューニング制御プログラムの処理手順を示すPADである。 実施例1の実験制御部による処理のシーケンスを示す図である。 実施例1の次パラメータセットを決定する処理の手順を示すPADである。 反射の位置を求める処理の手順を示すPADである。 収縮の位置を求める処理の手順を示すPADである。 実施例2のチューニング制御プログラムの設定ファイルの例を示す図である。 実施例2のチューニング制御プログラムの処理手順を示すPADである。 実施例3のチューニング制御プログラムの設定ファイルの例を示す図である。 実施例3のチューニング制御プログラムの処理手順を示すPADである。 実施例4の実験制御部による処理のシーケンスを示す図である。 実施例5のチューニング制御プログラムの設定ファイルの例を示す図である。 実施例6の次パラメータセットを決定する処理の手順を示すPADである。
符号の説明
101:チューニング制御部、102:実験制御部、103:次パラメータセット決定部、104:パラメータ設定部、105:プログラム起動・停止部、106:性能情報計測部、110:多階層システム、111−1〜111−n:パラメータ、112−1〜112−n:プログラム、402:チューニング制御プログラム、440:Webシステム、431−1〜431−3:負荷かけツール。

Claims (16)

  1. 階層構成をもつ複数のプログラムから構成される多階層システムの性能のチューニング制御システムであって、前記チューニング制御システムは、計算機によって実行されるプログラムの構成要素として、
    前記多階層システムを構成する各プログラムの動作のパラメータを設定するパラメータ設定部と、前記各プログラムを起動、停止するプログラム起動・停止部と、前記多階層システムの性能情報を計測する性能情報計測部と、前記多階層システムを構成するプログラム実行中に発生する不定期の処理が実行される時間帯を監視する不定期処理監視部と、前記パラメータ設定部、前記プログラム起動・停止部前記性能情報計測部及び前記不定期処理監視部を起動し、前記多階層システムを稼動させることによって実験する実験制御部と、前記性能情報の計測結果に対して次の実験に使用する前記パラメータの組合せである次パラメータセットを決定する次パラメータセット決定部と、所定の終了条件を満たすまで前記次パラメータセットを決定し前記実験を繰り返すように前記実験制御部および前記次パラメータセット決定部を制御するチューニング制御部と
    を有し、
    前記実験制御部は、前記不定期処理監視部が報告する前記時間帯にかかる前記性能情報を性能計測の対象から除外し、
    前記次パラメータセット決定部は、前記時間帯以外の前記性能情報が最適化されるように前記パラメータセットを決定することを特徴とするチューニング制御システム。
  2. 前記多階層システムは、Webサーバ、アプリケーションサーバ及びデータベースサーバの各プログラムを有するWebシステムであることを特徴とする請求項1記載のチューニング制御システム。
  3. 前記チューニング制御システムは、前記性能情報計測部を含み前記多階層システムに対して同時に複数のリクエストを発行することによって負荷をかけるプログラム構成要素として負荷かけツールを有することを特徴とする請求項1記載のチューニング制御システム。
  4. 前記チューニング制御部がパラメータ数+1個の初期パラメータセットを用いて初期実験を行うよう制御して各初期パラメータセットに対応する性能情報を取得した後に、前記次パラメータセット決定部は、取得した前記性能情報に滑降シンプレックス法を適用して前記性能情報を最適化するようなパラメータ空間上の1点に向かってパラメータセットを収束させることを特徴とする請求項1記載のチューニング制御システム。
  5. 所定回数の前記実験によって最良のパラメータセットが変更されないとき、前記チューニング制御部は、前記最良のパラメータセットについてもう一度実験を行い、計測された性能情報と以前に計測された前記最良のパラメータセットに対応する性能情報との平均値を、前記最良のパラメータセットの性能情報として前記次パラメータセット決定部に制御を渡すことを特徴とする請求項1記載のチューニング制御システム。
  6. 前記チューニング制御部は、前記パラメータ数+1個より多い個数の前記初期パラメータセットを用いて前記初期実験を行うよう制御した後に、前記性能情報の良い順に前記パラメータ数+1個の初期パラメータセットを選択して前記次パラメータセット決定部に制御を渡すことを特徴とする請求項4記載のチューニング制御システム。
  7. 前記次パラメータセット決定部は、算出された前記次パラメータセットの各パラメータの値を所定の整数倍することによって前記次パラメータセットを補正することを特徴とする請求項4記載のチューニング制御システム。
  8. 前記次パラメータセット決定部は、同一の最良点のパラメータセットが連続したとき、当該パラメータセットの各パラメータをパラメータ値に比べて小量だけランダムに増減するような補正をすることを特徴とする請求項4記載のチューニング制御システム。
  9. 階層構成をもつ複数のプログラムから構成される多階層システムの性能のチューニング制御方法であって、前記チューニング制御方法は、計算機によるプログラム実行によって実現され、
    前記多階層システムを構成する各プログラムの動作のパラメータを設定するステップと、
    前記各プログラムを起動するステップと、
    前記多階層システムの性能情報を計測するステップと、
    前記多階層システムを構成するプログラム実行中に発生する不定期の処理が実行される時間帯を監視するステップと、
    前記性能情報を計測するステップで計測された性能情報から、前記監視するステップで報告された前記時間帯にかかる前記性能情報を性能計測の対象から除外するステップと、
    前記各プログラムを停止するステップと、
    前記性能情報の計測結果に対して次の前記多階層システムの稼動に用いる前記パラメータの組合せである次パラメータセットを決定するステップとを有し、前記次パラメータセットを決定するステップは、前記時間帯以外の前記性能情報が最適化されるように前記パラメータセットを決定するものとし、
    所定の終了条件を満たすまで前記ステップを順に繰り返すことを特徴とするチューニング制御方法。
  10. 前記多階層システムは、Webサーバ、アプリケーションサーバ及びデータベースサーバの各プログラムを有するWebシステムであることを特徴とする請求項記載のチューニング制御方法。
  11. 前記多階層システムを構成する各プログラムが起動された後に、前記多階層システムに対して同時に複数のリクエストを発行することによって負荷をかけることを特徴とする請求項記載のチューニング制御方法。
  12. 前記パラメータを設定するステップは、最初にはパラメータ数+1個の初期パラメータセットの各々を設定し、前記初期パラメータセットについて前記性能情報を計測し、前記初期パラメータセットについての前記性能情報を取得した後に、前記次パラメータセットを決定するステップは、取得した前記性能情報に滑降シンプレックス法を適用して前記性能情報を最適化するようなパラメータ空間上の1点に向かってパラメータセットを収束させるように前記次パラメータセットを決定することを特徴とする請求項記載のチューニング制御方法。
  13. 前記ステップを順に繰り返し実行している間に所定回数の前記多階層システムの稼動によって最良のパラメータセットが変更されないことを検出したとき、前記最良のパラメータセットについてもう一度前記多階層システムを稼動させ、計測された性能情報と以前に計測された前記最良のパラメータセットに対応する性能情報との平均値を、前記最良のパラメータセットの性能情報として前記次パラメータセットを決定するステップを実行することを特徴とする請求項記載のチューニング制御方法。
  14. 前記次パラメータセットを決定するステップは、最初にはパラメータ数+1個より多い個数の前記初期パラメータセットの各々を設定し、前記初期パラメータセットについて前記性能情報を計測し、前記初期パラメータセットについての前記性能情報を取得した後に、前記性能情報の良い順に前記パラメータ数+1個の初期パラメータセットを選択して前記次パラメータセットを決定するステップを実行することを特徴とする請求項12記載のチューニング制御方法。
  15. 前記次パラメータセットを決定するステップは、算出された前記次パラメータセットの各パラメータの値を所定の整数倍することによって前記次パラメータセットを補正することを特徴とする請求項12記載のチューニング制御方法。
  16. 前記次パラメータセットを決定するステップは、同一の最良点のパラメータセットが連続したとき、当該パラメータセットの各パラメータをパラメータ値に比べて小量だけランダムに増減するように補正をすることを特徴とする請求項12記載のチューニング制御方法。
JP2004030038A 2004-02-06 2004-02-06 チューニング制御方法及びシステム Expired - Fee Related JP4460319B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004030038A JP4460319B2 (ja) 2004-02-06 2004-02-06 チューニング制御方法及びシステム
US11/051,082 US20050251801A1 (en) 2004-02-06 2005-02-04 Tuning control method and system using thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004030038A JP4460319B2 (ja) 2004-02-06 2004-02-06 チューニング制御方法及びシステム

Publications (2)

Publication Number Publication Date
JP2005222343A JP2005222343A (ja) 2005-08-18
JP4460319B2 true JP4460319B2 (ja) 2010-05-12

Family

ID=34997916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004030038A Expired - Fee Related JP4460319B2 (ja) 2004-02-06 2004-02-06 チューニング制御方法及びシステム

Country Status (2)

Country Link
US (1) US20050251801A1 (ja)
JP (1) JP4460319B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI428767B (zh) * 2006-06-26 2014-03-01 Ibm 最佳化配置系統參數集之方法,程式及裝置
EP2044511A4 (en) * 2006-07-06 2010-03-10 Akorri Networks Inc MANAGEMENT OF THE CHARGE OF AN APPLICATION SYSTEM
JP4962239B2 (ja) * 2007-09-20 2012-06-27 大日本印刷株式会社 リソース使用量取得装置、リソース使用量取得方法、及びリソース使用量取得処理プログラム
US9977721B2 (en) 2007-12-20 2018-05-22 Netapp, Inc. Evaluating and predicting computer system performance using kneepoint analysis
US8438378B2 (en) * 2008-06-25 2013-05-07 Veloxum Llc Systems and methods for tuning an operating system, application, or network component

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067412A (en) * 1995-08-17 2000-05-23 Microsoft Corporation Automatic bottleneck detection by means of workload reconstruction from performance measurements
US6574578B1 (en) * 1999-02-04 2003-06-03 International Business Machines Corporation Server system for coordinating utilization of an integrated test environment for component testing
US6601018B1 (en) * 1999-02-04 2003-07-29 International Business Machines Corporation Automatic test framework system and method in software component testing
US6477483B1 (en) * 2000-01-17 2002-11-05 Mercury Interactive Corporation Service for load testing a transactional server over the internet
US7231606B2 (en) * 2000-10-31 2007-06-12 Software Research, Inc. Method and system for testing websites
US6654699B2 (en) * 2000-12-29 2003-11-25 Microsoft Corporation Computer network testing system and method using client playback of edited network information
US7090749B2 (en) * 2001-07-31 2006-08-15 International Business Machines Corporation Method and apparatus for simulating application workloads on an e-business application server
US6792393B1 (en) * 2001-12-03 2004-09-14 At&T Corp. System and method for diagnosing computer system operational behavior
CA2543746C (en) * 2003-10-27 2018-01-16 Archivas, Inc. Policy-based management of a redundant array of independent nodes
US7376083B2 (en) * 2003-12-09 2008-05-20 International Business Machines Corporation Apparatus and method for modeling queueing systems with highly variable traffic arrival rates

Also Published As

Publication number Publication date
JP2005222343A (ja) 2005-08-18
US20050251801A1 (en) 2005-11-10

Similar Documents

Publication Publication Date Title
US10866840B2 (en) Dependent system optimization for serverless frameworks
Nghiem et al. Towards efficient resource provisioning in MapReduce
US10642652B2 (en) Best trade-off point on an elbow curve for optimal resource provisioning and performance efficiency
Gupta et al. PQR: Predicting query execution times for autonomous workload management
KR101600129B1 (ko) 애플리케이션 효율 엔진
US9785468B2 (en) Finding resource bottlenecks with low-frequency sampled data
US20050132379A1 (en) Method, system and software for allocating information handling system resources in response to high availability cluster fail-over events
CN109447274B (zh) 用于执行机器学习的分布式***及其方法
Chung et al. Using information from prior runs to improve automated tuning systems
US7673027B2 (en) Method and apparatus for designing multi-tier systems
WO2008074526A2 (en) Method, system and computer program for testing software applications based on multiple data sources
US20090326869A1 (en) Performance evaluating apparatus
US20090144743A1 (en) Mailbox Configuration Mechanism
CN107729353B (zh) 用于执行机器学习的分布式***及其方法
US11196823B2 (en) Service deployment control system, service deployment control method, and storage medium
US20070233532A1 (en) Business process analysis apparatus
JP2005135130A (ja) 負荷監視条件決定プログラム,負荷監視条件決定システム,負荷監視条件決定方法および負荷監視プログラム
JP4460319B2 (ja) チューニング制御方法及びシステム
EP1533699B1 (en) A method of assigning objects to processing units
Diao et al. Generic online optimization of multiple configuration parameters with application to a database server
Boza et al. A case for performance-aware deployment of containers
JP5790411B2 (ja) 並列の分散環境において対話的クライアント‐サーバー・アプリケーションの効率的な部分的クロールを行う技法
JP5857806B2 (ja) 分散処理システムのテスト方法および分散処理システム
JP5879117B2 (ja) 情報処理システムおよび運用管理方法
US11138087B2 (en) System for automatically evaluating a change in a large population of processing jobs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061010

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061010

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100126

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100212

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees