(57)【要約】【課題】特定の評価対象である構成要素に対して、所定の均等な負荷（トランザクション）を与え続ける。【解決手段】特定の試験対象要素に対してアクセスを行なう仮想ユーザ６ａ、６ｂを所定数と、上記仮想ユーザの数を決め、かつ上記仮想ユーザの処理時間を監視して各仮想ユーザの次の処理までの時間を設定通知するトランザクション制御部３を備えて、上記試験対象要素には上記仮想ユーザのみがアクセスするようにして、上記試験対象要素がシステムで定められた均一負荷状態に近づくよう制御するようにした。【選択図】        図１
2004362490.tif 000002
【特許請求の範囲】
【請求項１】
特定の試験対象要素に対してアクセスを行なう仮想ユーザを所定数と、
上記仮想ユーザの数を決め、かつ上記仮想ユーザの処理時間を監視して各仮想ユーザの次の処理までの時間を設定通知するトランザクション制御部を備えて、
上記試験対象要素には上記仮想ユーザのみがアクセスするようにして、上記試験対象要素がシステムで定められた均一負荷状態に近づくよう制御することを特徴とする特定構成要素負荷試験システム。
【請求項２】
特定の試験対象が行なう処理をトランザクションとして生成してキューとして蓄えるトランザクション生成部を備え、
上記生成したトランザクションをほとんどキューの順序に各仮想ユーザに処理し、上記試験対象にリトライしても所定の処理が得られない場合は該当するトランザクションを上記キューに返還するトランザクション取得部を仮想ユーザに備えた、ことを特徴とする請求項１記載の特定構成要素負荷試験システム。
【請求項３】
トランザクション制御部は、仮想ユーザが所定時間内に処理できない場合は、次の処理開始までの時間を長くし、仮想ユーザが所定時間内に処理を十分に終えた場合は、次の処理開始までの時間を短くするようにしたことを特徴とする請求項１記載の特定構成要素負荷試験システム。
【請求項４】
キュー状態にあるトランザクションの数を監視するキュー監視部を備え、
キュー状態にあるトランザクションの数により、キュー状態にあるトランザクションを部分削除するか、またはトランザクション生成部に通知して、生成するトランザクションを抑えるようにしたことを特徴とする請求項１記載の特定構成要素負荷試験システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、Ｗｅｂアプリケーションを含むシステムにおける、検証や試験を行なう際の、試験負荷の均等化等に関するものである。
【０００２】
【従来の技術】
従来のシステムでは、負荷の均等化や、重負荷に対する処理側の負荷分散、負荷均一化に関するものがほとんどである。即ち既に構築されている既存システムに対して、システム・リソースを有効利用するよう、システムの負荷を時間的にまたは空間的に分離、分配して再構築して、負荷を分散させている。
例えば特許文献１では、既存システムにおいて、仮想計算機システム上に複数のロジカル・パーティションを割当て、管理装置がこれらのロジカル・パーティションが共有するリソースの割り当てを動的に再構築して、待ち時間を少なくすることが行なわれている。
【０００３】
しかしシステムを設計し、システム設計に基づく評価試験において、設計仕様を満足するかを検証する際に、特定構成要素に確実に負荷を掛け続ける仕組みを保証する構成は、あまり論じられていない。
全体のシステム設計では、個々の特定要素に対して、その要素が持つ機能で十分であるか、細かく負荷を調整できないでいる。
【０００４】
【特許文献１】
特開２００２−２０２９５９号公報
【０００５】
【発明が解決しようとする課題】
従来の負荷分散方式は上記のように構成されており、システム評価の段階における、特定構成要素への負荷試験において、均等、かつ連続した負荷試験を保証する適切な方法が示されていないという課題がある。
【０００６】
この発明は上記の課題を解決するためになされたもので、特定の評価対象である構成要素に対して、所定の均等な負荷（トランザクション）を与え続けることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係る特定構成要素負荷試験システムは、特定の試験対象要素に対してアクセスを行なう仮想ユーザを所定数と、
上記仮想ユーザの数を決め、かつ上記仮想ユーザの処理時間を監視して各仮想ユーザの次の処理までの時間を設定通知するトランザクション制御部を備えて、
上記試験対象要素には上記仮想ユーザのみがアクセスするようにして、上記試験対象要素がシステムで定められた均一負荷状態に近づくよう制御するようにした。
【０００８】
【発明の実施の形態】
実施の形態１．
システムの負荷試験においては、評価対象の要素が、いつも動作していることが必要である。ところが多くの場合、システム設計では全体の仕様を記述しがちであり、個々の構成要素の動作詳細までは記述していないことが多い。例えば単位時間あたりの負荷量は規定しても、その負荷がいつも実行されているかどうか、また適切に実行されていることを保証するシステムであることを確実に検証するようにはなっていないことが多い。
システムのユーザによる使用状態を考えると、短時間に集中する場合もあるし、時間的に連続して絶えず負荷がかかる状態もあり得る。システムの評価段階において、こうした負荷の集中と分散を任意に設定できることは大切なことである。もちろんオンライン・システムでは、プロトコルで同時アクセスに対する回避がシステムとして組み込まれる場合が多いが、こうした配慮により実構成要素には時間的に空いた間隔で負荷がかかり、意図した負荷試験が行なわれない。
【０００９】
特定の試験対象の要素をＷｅｂアプリケーションとし、本実施の形態ではこれを１つであるとして、試験対象が行なう処理をトランザクションとして設定して行なう負荷試験システムを説明する。
図１は本実施の形態における負荷試験システムの構成を示す図である。図において、仮想ユーザ６（６ａ、６ｂ等）からのみＷｅｂアプリケーション２にアクセスするように構成し、その仮想ユーザ数をシステムがＷｅｂアプリケーションに一度に重なってアクセスすると予測する度合いだけ数を設定する。仮想ユーザ数を抑えれば、平均化したアクセスの場合の負荷におけるＷｅｂアプリケーションの状態を検証できるし、仮想ユーザ数を増やせば、アクセスが重なる場合のＷｅｂアプリケーション、及びシステムの振舞いを検証できる。
トランザクション生成部４は、仮想ユーザとは別に、スクリプトファイル１０を参照して各種のトランザクション１１を作成して、トランザクションキュー５に待機させる。仮想ユーザ１は、アクセス部９でＷｅｂアプリケーション２にアクセスし、トランザクション制御部３から設定された時間間隔でトランザクション取得部７がトランザクションキュー５から先頭のトランザクション１１を取り出して処理する。仮想ユーザ１には、全体の制御管理をする仮想ユーザ制御部８がある。
【００１０】
図２は、トランザクション制御部の動作を示すフローチャートである。図３は、仮想ユーザ制御部８が行なう動作を示すフローチャートである。図４は、仮想ユーザのトランザクション取得部７が行なう動作を示すフローチャートである。これらの図を用いて、次に負荷試験システムの動作を説明する。
負荷試験システムを動作させるにあたって、ユーザがアクセスすべきＷｅｂアプリケーションの情報、例えばアクセス先ホスト名、ポート番号等や、ある決められたトランザクションモデルより計算された負荷情報、例えば単位時間あたり何画面アクセスするか等の情報を、トランザクション制御部３に設定する。同時にどのＷｅｂページをどのようにアクセスしたらよいかを記述した、ＵＲＬやＰＯＳＴする文字列で列挙された、スクリプトファイル１０を用意する。このスクリプトファイル１０は、複数の異なる種類の内容を用意してもよい。
【００１１】
図１に構成を示す負荷試験システムが動作を開始すると、先ず図２の動作フローに従って、トランザクション制御部３は、Ｓ２０１で設定されたトランザクション量をＳ２０２でトランザクション生成部４に生成量と生成間隔を指示する。次いでＳ２０３で仮想ユーザ６ａ、６ｂ等を、負荷時に同時アクセスさせたい数だけ作成し、Ｓ２０４で各仮想ユーザのトランザクション取得部７に取得間隔を通知して、その値を設定する。この際、各仮想ユーザのトランザクション取得部７に設定する取得時間を変えると、システムが順調に稼動している場合は、各取得時間の最小公倍数毎に同時アクセスの負荷試験ができる。
以後、トランザクション生成部４は、スクリプトファイルより１トランザクションを生成し、トランザクションキューに入れる。トランザクション生成部はスクリプトファイル内の文字列を例えば時間やユーザ情報に書き換える機能を有しており、１スクリプトファイルから異なったトランザクションを作成可能である。
【００１２】
作成された仮想ユーザ６の仮想ユーザ制御部では、Ｓ３０１でトランザクションキュー５にトランザクション１１が存在する場合は、Ｓ３０２でトランザクション取得部を使って１トランザクション取得する。Ｓ３０３でアクセス部９にトランザクションを渡し、Ｗｅｂアプリケーションに負荷をかけアクセス時間計測を開始する。アクセス部で１トランザクションの処理が終了したら、Ｓ３０４で１トランザクションのアクセス時間を計算する。そのアクセス時間が想定処理時間より大きい場合は（Ｓ３０５）すぐに次のトランザクションをトランザクションキューより取得しアクセスを開始するが、もし小さい場合はＳ３０６でその差分の時間だけ処理を止め、想定処理時間になると再度アクセスを開始する。トランザクションキューにトランザクションが存在しない場合は処理を終了する。
【００１３】
以上のように、負荷対象となるＷｅｂアプリケーションへ唯一アクセスする、複数の仮想ユーザを使ってキューからトランザクションを取ってくる処理と、想定処理時間を設定することにより、トランザクションモデルに従い一定の負荷試験評価を行うことができる。
なお、仮想ユーザ数を減らし、かつトランザクション取得間隔をＷｅｂアプリケーション処理時間と等しく設定することにより、さらに均一な負荷をかけることができる。
【００１４】
実施の形態２．
本実施の形態では、構成は実施の形態１と同じとし、仮想ユーザの処理間隔を調整する動作を説明する。
図５は本実施の形態における仮想ユーザ制御部の動作フローチャートを示し、図３のＳ３０５、Ｓ３０６の部分のみ修正したのものである。
図６は本実施の形態における処理時間の変化を説明する図で、アクセス時間が想定処理時間より大きかった場合に、その差分が閾値より大きい場合と小さい場合とでどのように処理が変わるかの例を示した説明図である。
【００１５】
次に動作について説明する。
実施の形態１において、Ｓ３０５でアクセス時間が想定処理時間より大きい場合にはＳ３０１に戻ってすぐにトランザクションキューより次のトランザクションを取得しに行っていたが、ここでアクセス時間を想定時間で割った余りを求めて閾値より小さければトランザクションをすぐに取得するが、Ｓ５０５でそうでない場合は、Ｓ５０６で想定処理時間と余り時間の差分の時間だけ処理を止める。
図６の仮想ユーザ１のように、何らかの理由で想定時間よりアクセス時間が大きくなり続けている場合において、前のトランザクションのアクセス終了後すぐに次のトランザクションにアクセスすると、Ｗｅｂアプリケーションへのアクセス時間が想定したものとずれが生じ、偏った負荷をかけるようになる。そこで、図６の仮想ユーザ２のようにアクセス時間が閾値を超えてかかった場合は、次の想定開始時間まで処理を止めることにより処理が滞留せず均等に負荷をかけることができる。
また、図６の仮想ユーザ３のようになんらかの原因でアクセス時間が瞬間的にかかった場合に、処理を止め負荷を分散すると、想定トランザクションを満たさなくなってしまうが、図６の仮想ユーザ４のように、ＳＴから始まるトランザクションの処理のためのアクセス時間が閾値を超えない場合は、直ちに次の予定されたトランザクションを実行することにより、想定トランザクションを満たした負荷をかけることができる。
実施の形態１で述べた仮想ユーザ作成を一定間隔空けて行う方法において、この方法は大いに有効である。
【００１６】
実施の形態３．
トランザクションの内容は、先に延べたように、トランザクション生成部４により各種のものが生成できる。従って、これら各種のものを全て負荷試験したいので、特定のトランザクションがトランザクションキュー５に残り続けることがないようにしたい。
図７は、本実施の形態における、こうした特定トランザクションのシステム残留を防ぐアクセス部の動作を記述したフローチャートである。
【００１７】
次に動作について説明する。
実施の形態１においてトランザクション取得部７は、トランザクションキュー５からトランザクションを受け取り、Ｗｅｂアプリケーション２にアクセスし、Ｗｅｂアプリケーションのアクセスが成功すれば再度要求が来るまで処理を止め、失敗すれば処理を終了していたが、本実施の形態では、処理を終了せず、Ｓ７０３を設けて永遠にリトライを続けるよう変更する。トランザクションが実行されないと不都合が生じる場合に、リトライすることにより確実にトランザクションが実行されるので、このフローは有効である。
【００１８】
また、リトライ数を設定する試験も可能である。
図８は、アクセス部の動作を記述したフローチャートである。
実施の形態１の構成に加え、アクセス部にリトライ回数を設定できるようにし、Ｓ８０３の結果によりアクセス部がトランザクションキューにトランザクションを戻す機能を追加している。
【００１９】
次に動作について説明する。
実施の形態３において、図８の場合は、トランザクション制御部から仮想ユーザを生成する際にＳ８０１でＷｅｂアクセスのリトライ回数をする。アクセス部でトランザクションを受け取りＷｅｂアクセスを行い、何らかのエラーでアクセス失敗した場合設定されたリトライ回数分リトライを繰り返す。Ｓ８０３でリトライ回数分アクセスしても失敗の場合は、Ｓ８０５でアクセス対象のトランザクションをトランザクションキューで１番最後に処理される部分に入れる。
以上のように、ある時間では何度Ｗｅｂアプリケーションにアクセスしてもエラーが起きる場合においても、トランザクションキューに戻すことにより処理を後回しにすることができ、再度時間を置いた後リトライすることが可能で、トランザクションが実行されないと不都合が生じる場合に有効である。
【００２０】
実施の形態４．
トランザクションを生成する間隔をあけて、負荷を均一化する方式も可能である。図９は、そうした場合のトランザクション制御部３の動作を記述したフローチャートである。
実施の形態１では、トランザクション生成部４がスクリプトファイルよりトランザクションを１度に作成していたが、それを一定時間を置いて作成するようにしたものである。
【００２１】
次に動作について説明する。
本実施の形態においては、トランザクション生成部４は、スクリプトファイルよりトランザクションを一定時間を置いて作成する。また、アクセス部はトランザクションキューからトランザクションを取るときに、トランザクションがない場合アクセス部が終了していたが、Ｓ９０１でトランザクションキューにトランザクションがない場合は一定時間処理を止め、トランザクションが取れるまでリトライを繰り返す。以上のように、トランザクション生成部で作成するトランザクション数および作成時間を調整することにより、アクセス部でアクセスする負荷を調節することができる。
【００２２】
実施の形態５．
負荷状況を監視する機能を独立の機能としてシステムに設けてもよい。
図１０は、実施の形態１にトランザクションキュー監視機能を持ったキュー監視部１２を追加した構成である。
図１１は、本構成におけるキュー監視部の動作を記述したフローチャートである。
【００２３】
次に動作について説明する。
本実施の形態において、トランザクション生成部では一定時間の間隔を置いてスクリプトファイルからトランザクションを生成しているが、トランザクションキューにキュー監視部を追加することにより、一定時間間隔でキューの中のトランザクション数を監視し、一定数以上になるとトランザクション生成部に通知し、トランザクションを生成するようにする。
以上のように、キュー監視部により実際に負荷が処理されないときでもトランザクションキューが溢れないようにすることができる。
【００２４】
本実施の形態において、キュー監視部の機能を更に追加し、一定時間間隔でキューの中のトランザクション数を監視し、一定数以上のトランザクションを削除するようにすてもよい。即ちトランザクション生成部へ生成中止を指示することに代えて、自身でトランザクションを直接に削除するようにしてもよい。
この場合の動作フローは、図１１のＳ１１３がトランザクションキュー５中に残っているトランザクション１１の削除となる。
以上のように、トランザクションキューにトランザクションをたまらないようにすることで、トランザクションで実行される内容には関係ない場合に、負荷を平均的にかけ続けることができる。
【００２５】
【発明の効果】
以上のようにこの発明によれば、システムで要求される仮想ユーザを設定し、かつ各仮想ユーザに取得時間を設定する構成としたので、特定の負荷に対して均一な、または適切な負荷試験を行なえる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１における負荷試験システムの構成図である。
【図２】実施の形態１におけるトランザクション制御部が行なう動作フローを示す図である。
【図３】実施の形態１における仮想ユーザ制御部が行なう動作フローを示す図である。
【図４】実施の形態１における仮想ユーザのトランザクション取得部が行なう動作フローを示す図である。
【図５】この発明の実施の形態２における仮想ユーザ制御部が行なう動作フローを示す図である。
【図６】実施の形態２における仮想ユーザ制御部の動作を説明する図である。
【図７】この発明の実施の形態３における仮想ユーザのアクセス部が行なう動作フローを示す図である。
【図８】実施の形態３における他の仮想ユーザ制御部が行う動作フローを示す図である。
【図９】この発明の実施の形態４におけるトランザクション制御部が行なう動作フローを示す図である。
【図１０】この発明の実施の形態５における負荷試験システムの構成図である。
【図１１】実施の形態５におけるキュー監視部が行なう動作フローを示す図である。
【符号の説明】
２  Ｗｅｂアプリケーション（試験対象要素）、３  トランザクション制御部、４  トランザクション生成部、５  トランザクションキュー、６，６ａ，６ｂ仮想ユーザ、７  トランザクション取得部、８  仮想ユーザ制御部、９  アクセス部、１０  スクリプトファイル、１１  トランザクション、１２  キュー監視部。
【図１】
2004362490.tif 000003
【図２】
2004362490.tif 000004
【図３】
2004362490.tif 000005
【図４】
2004362490.tif 000006
【図５】
2004362490.tif 000007
【図６】
2004362490.tif 000008
【図７】
2004362490.tif 000009
【図８】
2004362490.tif 000010
【図９】
2004362490.tif 000011
【図１０】
2004362490.tif 000012
【図１１】
2004362490.tif 000013