JP4208493B2 - Load test system for network server - Google Patents
Load test system for network server Download PDFInfo
- Publication number
- JP4208493B2 JP4208493B2 JP2002174458A JP2002174458A JP4208493B2 JP 4208493 B2 JP4208493 B2 JP 4208493B2 JP 2002174458 A JP2002174458 A JP 2002174458A JP 2002174458 A JP2002174458 A JP 2002174458A JP 4208493 B2 JP4208493 B2 JP 4208493B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- load
- terminal
- server
- execution
- 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
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Multi Processors (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、ネットワーク上に存在する種々のネットワークサーバシステムに対し、様々なアクセスパターンをシミュレートして、負荷を発生させることにより、サーバ負荷テストを行うため、指定した複数の仮想クライアントを1台のテスト実行端末内に生成し、そのテスト実行端末を複数管理するコテストマネージャ端末を1台用意し、そのテストマネージャ端末から生成した複数の仮想クライアントに対して様々な負荷テスト動作を指示し、対象のネットワークサーバのパフォーマンス結果を記録し、パフォーマンステストを行うことができる負荷テストシステムに関する。
【0002】
【従来の技術】
近年、ネットワーク技術の発達と共に、ネットワーク上でのサーバ/クライアントシステムとして実現されるアプリケーションが増加している。このようなアプリケーションのテストは、従来のスタンドアロン型のアプリケーションとは異なり、そのパフォーマンスの測定及びボトルネックの検出を行うためにはネットワークを含めたシステム全体の検査が必要となるために、非常に難しくなっている。
【0003】
上記のような目的のために、従来のネットワークサーバへの負荷テストシステムでは、実際に複数のクライアント端末を用意して、それら各々に個々のネットワークアドレスを設定し、クライアントアプリケーションを実行して、実際にサーバへのアクセスを行って負荷を発生させていた。
【0004】
又、幾つかの負荷テストツールにおいては、1台の端末上で複数のクライアント処理を生成してサーバにアクセスを発生させていたが、各クライアント処理は、全て同じネットワークアドレスを利用してサーバにアクセスを行っていたので、実際の異なるネットワークアドレスを持つ複数クライアント端末からのアクセスを忠実にシミュレートすることはできなかった。
【0005】
【発明が解決しようとする課題】
従来のネットワークサーバへの負荷テストシステムでは、実際に複数のクライアント端末を用意して、それら各々に個々のネットワークアドレスを設定し、クライアントアプリケーションを実行して、実際にサーバへのアクセスを行って負荷を発生させているが、このようなシステムだと、使用する端末数、その端末を設置するスペース、その端末をオペレーションする人等、多くのコストが掛かってしまう。
【0006】
又、全て人の手によるオペレーションだとテストの再現性を保つのは非常に困難である。
【0007】
これら問題を解決するため、本発明は、指定した複数の仮想クライアントを1台のテスト実行端末内に生成し、そのテスト実行端末を複数管理するコテストマネージャ端末を1台用意し、そのテストマネージャ端末から生成した複数の仮想クライアントに対して様々な負荷テスト動作を行えるシステムを提供することを目的とする。
【0008】
又、逆に1台のテスト実行端末上で複数のクライアント処理を行うと、テスト実行端末に対しても負荷を与えてしまう。当然、1台のテスト実行端末内から被負荷テスト端末に対し複数のアクセスを行うより、1台1台の端末からのアクセスの方がより正確な使用環境に近い環境を再現できる。
【0009】
このような問題を解決するために、本発明は、負荷テストを行う事前処理として、被負荷テスト端末上の負荷テスト対象サーバに代わるリファレンスサーバに対し、負荷テストを行うことにより負荷テストシステム自体の負荷データを取得でき、この取得データを実際の負荷テスト対象サーバに対して行った負荷テスト結果データ情報から引くことにより、負荷テスト対象サーバのみの負荷テスト結果情報を取得することが可能なシステムを提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するため、本発明は、負荷テストの実行指示を行う1台のテストマネージャ端末と、実際に負荷テストを実行する複数のテスト実行端末と、負荷を掛けられる被負荷テスト端末とを有する負荷テストシステムであって、前記テスト実行端末は、前記テストマネージャ端末から配信された負荷テスト動作情報に従って同じく配信されたクライアントモジュールを動作させ、配信されたテストデータを利用して前記被負荷テスト端末内のテスト対象サーバ及びリファレンスサーバに対して負荷アクセスを発生させる負荷テスト動作実行手段を備え、前記被負荷テスト端末は、負荷テストの対象となる負荷テスト対象サーバと、リファレンスサーバと、前記テストマネージャ端末に当該負荷テスト対象サーバ及びリファレンスサーバにおける負荷テスト結果情報を通知する手段とを備え、前記テストマネージャ端末は、負荷テスト動作情報、テスト用クライアントモジュール及びテストデータを各テスト実行端末に配信する手段と、前記テスト対象サーバ及びリファレンスサーバの負荷テスト結果情報の差分により前記負荷テスト対象サーバの負荷を求める手段とを備えることを特徴とする。
【0011】
【発明の実施の形態】
以下に、添付図面を参照しながら、本発明に係るネットワークサーバへの負荷テストシステムの一実施形態について説明する。但し、以下の説明は、本発明に係るテストマネージャ端末及びテスト実行端末及びそれら機能を実現するアプリケーションを記録した記録媒体の一実施形態の説明を兼ねる。
【0012】
図1は本発明に係るテストマネージャ端末及びテスト実行端末のシステム・ブロック図である。1はシステム・バスであり、これから説明する各構成ブロックはこのシステム・バスに接続されている。
【0013】
2はCPU(Centrtal Processing Unit)である。3はプログラム・メモリ(PMEMと称す)で、本処理のためのプログラムを適宜、外部記憶装置18から選択/読込みし、2のCPUにて実行する。
【0014】
又、入力装置10から入力されたデータはテキスト・メモリでもあるPMEMにコード情報として格納される。
4はネットワーク制御部であり、5のネットワークポートにおける入出力データの制御を行う。
【0015】
ネットワークポート5から出力された信号は、ネットワークを経由してネットワーク上の他の装置のネットワークポートに伝えられる。ネットワーク上の他の端末とのデータのやり取りは、このネットワーク制御部4を介して行われる。
【0016】
6は公衆網を利用して通信を行う際に接続されているモデム7等の制御を行う。即ち、本負荷テストシステムは、LAN以外の公衆網を利用したネットワーク接続における負荷テストもその対象とすることが可能である。
【0017】
8は入力制御部であり、9の入出力装置が接される。操作者はこの入出力装置9を操作することによりシステムの動作指令等を行う。
【0018】
10は表示制御部、11はそれに接続されている表示装置である。入力装置9による入力指示の結果及びテスト設定情報及びテスト実行結果の情報は、ここに表示される。
【0019】
12は出力機器制御部であり、接続されているプリンタ13に対するデータの出力制御を行う。
14は外部記憶装置制御部であり、接続されている外部記憶装置15の制御を行う。本装置の機能を制御するプログラム及び画像データ等は本外部記憶装置15に保持される。
【0020】
図2に本実施形態の負荷テストシステムを形成する端末のネットワーク上の関係図を示す。
【0021】
同じネットワークに繋がっている複数の端末で、負荷テストシステムを構成する。
【0022】
21はネットワークを示す。22は負荷テスト動作シナリオ作成、テスト指示、テスト制御処理を行うテストマネージャ端末である。テストオペレータはこの端末によりテストに感銘する全てのオペレーションを行う。
【0023】
23は負荷テストにより負荷アクセスを行うテスト実行端末である。この1台1台の端末内に複数のクライアントを生成し、その1つのクライアントは、21ネットワークで個別のIPアドレスを持ち、テスト対象サーバに対して負荷アクセスを行う。24はテスト実行端末により負荷アクセスされる被負荷テスト端末である。この端末内に負荷テスト対象サーバがある。
【0024】
図3に本実施形態の負荷テストシステムを構成するテストマネージャ端末と各テスト実行端末との間でどのようなデータのやり取りを行っているか、又、どのようにしてネットワーク上のテスト対象サーバ装置に対して負荷アクセスを発生させ、そのパフォーマンス結果を取得するかという処理の手順を以下に示す。
【0025】
▲1▼:ネットワーク上のテストマネージャ端末31は、その端末の画面上に表示されるテスト実行端末一覧から、テスト実行を行うテスト実行端末32を選択して、そのテスト動作及びその端末上で動作させるクライアントモジュールの指定及びそのクライアントモジュールが利用するテストデータを指示する。
【0026】
▲2▼:▲1▼で設定されたデータをテストマネージャ端末31の配信手段を利用して、各テスト実行端末毎に各々必要なデータのみを送信する。
【0027】
36の配信方法は、大きなデータでも確実に配信させるため、TCP/IPであるhttpプロトコルを使用する。
【0028】
▲3▼:テストマネージャ端末31からのテスト準備指示命令37に従って各テスト実行端末は、配信されたクライアントモジュールの初期化処理を行う。
【0029】
▲4▼:各テスト実行端末・被負荷テスト端末は、テストマネージャ端末に対し、38によりネットワーク越しに内部設定時刻を取得する。取得した設定時刻を各々の端末は、自端末にセットする。
【0030】
▲5▼:テストマネージャ端末は、各テスト開始指示命令に従って負荷テストを開始する。
【0031】
▲6▼:各テスト端末は、指示されたテスト動作情報に従って上記クライアントモジュールを起動して、配信されたテストデータを利用してテスト対象サーバ34に対して負荷アクセスを発生させる。又、このとき、ここのクライアントモジュールの動作状態は、ステータス情報としてテストマネージャ端末に通知される。
【0032】
テストマネージャ端末31→テスト実行端末32のテスト動作指示37はテストの正確性や通信速度を考慮してUDPであるイベント(ブロードキャスト)を使用する。
【0033】
テスト中テストマネージャ端末は、テスト支持状況を、各テスト端末は、負荷アクセス処理状況を、被負荷テスト端末は、テスト実行端末アクセス時の自端末内のリソース使用状況をそれぞれテスト結果ファイルに保存する。
【0034】
▲7▼:上記▲6▼の負荷アクセス処理が終了すると、各テスト実行端末は、テスト結果情報をテストマネージャにアップロード35する。このとき、35の配信方法は、大きなデータでも確実に配信させるため、TCP/IPであるhttpプロトコルを使用する。テストマネージャは、受け取ったテスト結果情報を集計してユーザに通知する。
【0035】
図4に本発明における負荷テストシステムのモジュール構成図の一例を示す。
【0036】
同図中では、1台のテストマネージャ端末及び“n”台のテスト実行端末から構成されている負荷テストシステムを利用して、1台の被負荷テストネットワークサーバに対する負荷テストを行う場合を例にして説明している。尚、ここでは説明を簡単にするために、1台のネットワークサーバに負荷を与える例を示しているが、本発明では、この制限にとらわれることなく、複数の被負荷テスト端末に対して負荷テストを実行することが可能である。
【0037】
テスト実行端末管理モジュール41は、各テスト実行端末におけるテストの実行状況を確認する。本モジュールは、イベント処理モジュールを利用して、テスト実行端末からのステータス変更イベント情報を獲得する。或は、テストの実行開始/中止の指示を所望のテスト実行端末に対してイベントを発行することによって行うことができる。
【0038】
テスト動作情報設定モジュール42は、各テスト実行端末が実際に行うテストの動作を設定するする。同時に、各負荷テスト実行端末上で負荷を生成するために実行されるテスト用クライアントモジュール及び上記クライアントモジュールが利用するテストデータの指定もこのモジュールを利用して行われる。ここで設定されたデータは、データ配信モジュール44を利用して、適切なデータが各テスト実行端末に配信される。
【0039】
イベント処理モジュール43は、ネットワーク上へのイベント発行及びネットワーク上のイベント情報を獲得し、その内容を解析するためのモジュールである。テストマネージャ端末においては、各テスト実行端末への処理の指示、テスト実行端末においては、自身のテスト実行ステータスの変化を通知するために利用される。
【0040】
データ配信モジュールは、ネットワーク上の所望の端末に対して指示されたデータを配信するためのモジュールである。テストマネージャ端末においては、各テスト実行端末へのテスト関連データを配信するために利用され、テスト実行端末においては、テスト結果情報をテストマネージャ端末に送信するために利用される。
以上の41〜44のモジュールによってテストマネージャ端末の機能が提供される。
【0041】
負荷発生処理管理モジュール45は、データ配信モジュール44によって受け取ったテスト動作情報に従ってクライアントモジュールを起動し、配信されたテストデータを利用してテスト対象サーバに対して負荷アクセスを発生させる。
【0042】
ここで、負荷発生処理は、テストマネージャから配信されたクライアントモジュールを指示された条件で立ち上げることによって実現される。このクライアントモジュールは同時に複数起動する(本図の例の場合には、“N”個)ことが可能であり、更には、1台のテスト実行端末上で複数の異なるクライアントモジュールを同時に起動することも可能である。
【0043】
個々のクライアントモジュールの動作状況は、イベント所処理モジュール43を利用してテストマネージャ端末に通知される。
【0044】
46の負荷発生処理1〜Nは、負荷発生処理管理モジュールによって生成/管理されているスレッド、若しくはプロセス群であり、テストマネージャから指示されたテスト動作情報に従って対象サーバに負荷アクセスを発生する。
【0045】
ネットワークアクセス制御モジュールは、複数の負荷発生処理に対して擬似的に複数のネットワークアドレスをマッピングする等の負荷テストにおけるネットワーク制御処理を行う。
【0046】
48は被負荷テスト端末の状態・使用リソース又は49の負荷テスト対象サーバの状態・使用リソースを取得し、テストマネージャ端末へ通知する。
【0047】
図5に図4で説明した本発明における負荷テストシステムのモジュール構成図を元に負荷対象サーバを負荷テストシステム提供のリファレンスサーバに置き換えた場合のモジュール構成図を示す。51〜58は41〜48のモジュールと同様なので、説明を省く。
【0048】
60は負荷テストシステム提供のリファレンスサーバである。このサーバは、負荷テストシステムからの応答処理と、その時の時刻等の結果をログとして記録する。この記録結果とその後行う59の負荷テスト対象サーバでのテスト結果の差分が負荷テストシステムが使用するリソース等を省いた実際に負荷テスト対象サーバが消費するリソースで算出できる。
【0049】
図6に本発明におけるテスト動作情報のデータ構造例を示す。
【0050】
データ識別情報601には、本負荷テストシステムのテスト動作情報データであることの識別ID及び情報のバージョン管理情報等がセットされている。
【0051】
テストマネージャ端末情報602には、本設定情報を作成したテストマネージャ端末のネットワークアドレス等のネットワーク上での識別情報がセットされている。
【0052】
テスト実行端末の数603には、本設定情報で管理されているテスト実行端末の数がセットされている。以降のテスト端末の設定情報もこの数と同じだけ存在している。
【0053】
以上、601〜603が本テスト動作情報全体の管理情報である。
【0054】
テスト実行端末情報604には、以降の設定情報に従ってテストを実行する端末のネットワークアドレス等のネットワーク上での識別情報がセットされている。
【0055】
発生させる負荷処理の数605には、本テスト実行端末で生成する負荷を発生させるためのクライアント処理の(スレッド、或はプロセス)の数が設定されている。この数分、以降の「負荷処理の設定」情報が存在する。
【0056】
処理の同時実行情報606には、複数の負荷処理を本実行端末で生成する場合に、同時に発生させる処理の個数及びその発生間隔が設定されている。
【0057】
タイムアウト情報607には、本端末における個々の処理におけるタイムアウトと判定する閾値がセットされている。
【0058】
以上、604〜607がテスト実行端末における全処理に関しての管理情報である。
【0059】
クライアントモジュール名称608は、当該負荷処理を発生させるために利用するクライアントモジュールの名称である。このモジュールは、テストマネージャ端末から各テスト実行端末に配信される(若しくは、元々テスト実行端末に存在するモジュールの場合には、重複チェックを行い、無駄な配信処理は行わない)。
【0060】
テストデータファイル名称609は、負荷処理においてクライアントモジュール608が対象サーバにアクセスを行う際に利用するデータである。
クライアントモジュール動作設定情報610には、クライアントモジュール608が負荷テストのために実行する機能のリスト及び処理タイミングを同期するための情報がセットされている。
【0061】
前者は、例えば、クライアントモジュールが一連の印刷処理を行うモジュールであり、
1.プリンタを初期化する機能
2.プリンタを列挙する機能
3.プリンタにジョブを登録する機能
4.指示プリンタのステータスを列挙する機能
という機能を有する場合、本負荷処理で行う機能を例えば1,2,3というように指定する情報がセットされている。
【0062】
後者は、例えば、1台のテスト実行端末上で複数の負荷処理が行われる場合、例えば、上記のように1,2,3という処理を実行する際に1の処理が各負荷処理間でばらばらに終了しても、2の処理の開始ポイントを同期させるというための設定情報である。
【0063】
仮想ネットワークアドレス情報611は、1台のテスト実行端末で、複数の負荷処理を実行する場合、被負荷テスト端末に対して、個々の負荷処理毎に個別のネットワーク端末からアクセスが行われているかのように見せ掛けるための機能を実現するための情報である。
【0064】
本情報を前述のネットワークアクセス制御モジュールに与えることによって、上記機能を実現することができる。
【0065】
被負荷テスト端末の情報612は、本負荷処理がアクセスするテスト対象のサーバに対するネットワークアドレス等のネットワーク上での識別情報がセットされている。
【0066】
その他の制御情報613には、本負荷処理を行うに当り必要な詳細設定情報がセットされている。
【0067】
以上、608〜613が負荷処理毎の設定情報である。
【0068】
図7に本発明のテスト実行端末における負荷テスト実行処理の際のテストマネージャ端末からテスト実行端末への動作指示処理手順をフローチャートにて示す。
【0069】
前提としては、本フローチャート説明を簡単にするために、本フローチャートの処理に先立って、テストマネージャでテスト設定情報、テスト用クライアントモジュール及びテストデータに関しての設定は完了しているものとする。
【0070】
先ず、ステップS701では、テスト実行端末へテスト開始指示イベントを出す。ステップS702で、テスト動作情報ファイルの送信に成功したか否かをチェックする。各テスト実行端末がテスト動作情報ファイルの送信に成功した場合には、ステップS703へ移行し、そうではないと判断された場合には、ステップS712へ移行しテストを中止する。
【0071】
ステップS703では、テスト実行端末に配信されたテストに必要なデータを利用して指示された設定に従って負荷処理を立ち上げてテスト準備処理を実行する。
【0072】
ステップS704では、各テスト実行端末がテスト準備に成功したか否かをチェックする。成功しない場合は、ステップS705のエラー通知を各テスト実行端末から受け取る。
【0073】
テスト実行端末は、テスト実行に必要なデータ(テスト設定情報、テスト用クライアントモジュール及びテストデータ)は存在するか否かをチェックし、存在すると判断された場合には、ステップS707に移行し、存在しないと判断された場合には、ステップS707に移行する。
【0074】
ステップS705では、テスト実行端末では、データが存在しなので、指示されたテストを実行することができないというエラー情報をテストマネージャに対して通知する。
【0075】
ステップS706では、テスト準備の完了イベントをテスト実行端末から発行されるのを待つ。
【0076】
ステップS707では、テストマネージャからテスト実行端末にテスト開始指示イベントを発行する。
【0077】
ステップS708で、テストマネージャからのテスト開始指示イベントであると判断された場合には、ステップS709に移行し、そうではない場合には、ステップS708で再びイベント待ち処理を行う。
【0078】
ステップS709では、テスト実行端末が全ての仮想クライアントに対して実行の指示を行い、対象となるサーバに対して負荷の発生処理を行う。
【0079】
ステップS710では、テストマネージャが全てのテスト実行端末のテスト終了を監視する。全てのテスト実行端末の終了通知を受け取ると通知をステップS711に移行する。ステップS711では、テスト実行端末からの全ての負荷テスト処理通知を受け、テスト処理を終了する。
【0080】
図8はリファレンスサーバを用いた負荷テスト時のリファレンスサーバの動作指示処理手順の例をフローチャートに示す。
【0081】
但し、ここでは、テスト動作設定が既にテストマネージャ端末でなされていて、各テスト実行端末では、そのテスト動作設定、テストデータ等は、既に各テスト実行端末に送信済みで、テスト実行端末では、送信されたテスト動作設定を元に負荷テストを行う準備は既に終わっている状態とする。
【0082】
S801では、テストマネージャ端末から各テスト実行端末に対しテスト開始指示が発行される。
【0083】
S802では、各テスト実行端末上の各クライアントが一斉にリファレンスサーバに対して負荷アクセスを行う。
【0084】
S803では、アクセスを受けた被負荷テスト端末上のリファレンスサーバは、アクセス時間・アクセス相手情報を記録・使用リソース情報を記録する。
【0085】
S804では、テスト実行端末上のクライアントに対し返答を行う。
【0086】
S805では、テストマネージャ端末からの終了イベントを受け取るとS806に移行し、テストを終了する。終了イベントがない場合は、S802へ戻る。S806では、テスト結果情報をテストマネージャ端末に送信する。
【0087】
図9には、リファレンスサーバを用いた負荷テスト時のリファレンスサーバの記録する結果情報の項目を表にする。
【0088】
902,903はそれぞれサーバにアクセスしてくるテスト実行端末上のクライアントの名前・IPアドレス情報である。
【0089】
901は負荷テストシステムからテスト実行端末上のクライアントがリファレンスサーバに対しアクセスするのに掛かった時間であり、906は負荷テストシステムからテスト実行端末上のクライアントが負荷テスト対象サーバに対してアクセスするのに掛かった時間である。906の時間から901の時間の差分が負荷テスト対象サーバがクライアントのアクセスに対する返答をするのに掛かった時間(909)である。
【0090】
904は負荷テストシステムからテスト実行端末上のクライアントがリファレンスサーバに対しアクセスしたときに負荷テストシステム全体(リファレンスサーバも含む)で使用するCPU使用率である。又、907は負荷テストシステムからテスト実行端末上のクライアントが負荷テスト対象サーバに対しアクセスしたときに負荷テスト対象サーバと負荷テストシステムが使用するCPU使用率である。
【0091】
907のCPU使用率と904のCPU使用率の差分が負荷テスト対象サーバがクライアントのアクセスに対して使用するCPU使用率(910)である。
【0092】
905は負荷テストシステムからテスト実行端末上のクライアントがリファレンスサーバに対しアクセスしたときに負荷テストシステム全体(リファレンスサーバも含む)で使用するメモリ使用量である。又、908は負荷テストシステムからテスト実行端末上のクライアントが負荷テスト対象サーバに対しアクセスしたときに負荷テスト対象サーバと負荷テストシステムが使用するメモリ使用量である。
【0093】
908のメモリ使用量と905のメモリ使用量の差分が負荷テスト対象サーバがクライアントのアクセスに対して使用するメモリ使用量(911)である。
【0094】
[本発明他の応用例]
本発明の応用例を以下に述べる。
【0095】
<応用例1>
本発明では、各テスト実行端末が負荷テストを行うために必要なデータ(テスト設定情報、テスト用クライアントモジュール及びテストデータ)は、テストマネージャから各テスト実行端末に対して配信されることになっていた。
【0096】
しかし、テストマネージャの負荷を軽減するために、以下の処理で、各テスト端末がテストに必要なデータを獲得するという処理を行っても良い。
【0097】
Step1 :テストマネージャに於いて、テストに必要なデータの準備が完了した。
【0098】
Step2 :各テスト実行端末に対して、テストに必要なデータの獲得を指示するイベントを通知する。
【0099】
Step3 :各テスト実行端末は、テストマネージャに対して自機が必要とするテストデータを要求して、当該データをダウンロードする。
【0100】
Step4 :テスト実行端末が必要なデータのダウンロードが終了すると、テスト実行準備を行って、その結果をテストマネージャにイベントを発行して通知する。
【0101】
Step5 :テストマネージャは、全てのテスト実行端末からテスト実行準備完了のイベントが届いたと確認できると、全テスト実行端末に対してテスト実行の指示イベントを発行する。
【0102】
【発明の効果】
以上の説明で明らかなように、本発明によれば、様々なネットワーク上のサーバシステムに対して種々のクライアントアクセスパターンを実現して、効率の良いネットワークを含めたシステム全体の検査を実現することが可能となる。又、負荷テスト時に掛かる負荷テストシステムの負荷量を測り、その値を差分することにより、実際の環境により近い状態でのサーバパフォーマンス情報取得機能を提供することが可能である。
【図面の簡単な説明】
【図1】本発明に係るテストマネージャ端末及びテスト実行端末のシステム・ブロック図である。
【図2】本発明に係る負荷テストシステムにおけるネットワーク構成の一例を示す図である。
【図3】本発明に係る負荷テストシステムにおけるデータの交換手順を示す図である。
【図4】本発明に係る負荷テストシステムのモジュール構成図である。
【図5】本発明におけるリファレンスサーバを用いた場合の負荷テストシステムのモジュール構成図である。
【図6】本発明におけるテスト動作情報のデータ構造例を示す図である。
【図7】本発明のテスト実行端末における負荷テスト実行処理手順を示すフローチャートである。
【図8】本発明のテスト実行端末における負荷テスト実行処理手順を示すフローチャートである。
【図9】本発明のリファレンスサーバのテスト中に取得するテスト結果情報項目を示す図である。
【符号の説明】
1 システム・バス
2 CPU
3 PMEM
4 Network制御部
5 Networkポート
6 通信制御部
7 モデム
8 入力制御部
9 入力装置
10 表示制御部
11 表示装置
12 出力機器制御部
13 プリンタ
14 外部記憶装置制御部
15 外部記憶装置[0001]
BACKGROUND OF THE INVENTION
According to the present invention, a plurality of designated virtual clients are used to perform a server load test by simulating various access patterns and generating a load on various network server systems existing on the network. Prepared in the test execution terminal, and prepared one cotest manager terminal for managing a plurality of the test execution terminals, instructing various load test operations to the plurality of virtual clients generated from the test manager terminal, The present invention relates to a load test system capable of recording performance results of a target network server and performing a performance test.
[0002]
[Prior art]
In recent years, with the development of network technology, applications implemented as server / client systems on the network are increasing. Testing such applications is very difficult because, unlike traditional stand-alone applications, measuring the performance and detecting bottlenecks requires inspection of the entire system, including the network. It has become.
[0003]
For the purpose as described above, the conventional load test system for network servers actually prepares multiple client terminals, sets individual network addresses for each of them, executes the client application, The server was accessed and the load was generated.
[0004]
In some load test tools, a plurality of client processes are generated on a single terminal to cause access to the server. However, each client process uses the same network address to the server. Since access was performed, it was not possible to faithfully simulate access from a plurality of client terminals having actual different network addresses.
[0005]
[Problems to be solved by the invention]
In a conventional load test system for a network server, a plurality of client terminals are actually prepared, individual network addresses are set for each of the client terminals, a client application is executed, and the server is actually accessed to load. However, in such a system, many costs such as the number of terminals to be used, the space for installing the terminals, and the person who operates the terminals are required.
[0006]
In addition, it is very difficult to maintain the reproducibility of the test if it is an operation by all human hands.
[0007]
In order to solve these problems, the present invention creates a plurality of designated virtual clients in one test execution terminal, prepares one cotest manager terminal for managing a plurality of the test execution terminals, and the test manager An object of the present invention is to provide a system capable of performing various load test operations on a plurality of virtual clients generated from a terminal.
[0008]
Conversely, if a plurality of client processes are performed on one test execution terminal, a load is also applied to the test execution terminal. Naturally, it is possible to reproduce an environment closer to a more accurate usage environment by accessing from one terminal, rather than performing a plurality of accesses to the loaded test terminal from within one test execution terminal.
[0009]
In order to solve such a problem, the present invention performs a load test on a reference server in place of a load test target server on a load-tested terminal as a pre-process for performing a load test. A system that can acquire load data and obtain the load test result information of only the load test target server by subtracting the acquired data from the load test result data information for the actual load test target server. The purpose is to provide.
[0010]
[Means for Solving the Problems]
In order to achieve the above object, the present invention includes one test manager terminal that issues a load test execution instruction, a plurality of test execution terminals that actually execute a load test, and a loaded test terminal that can be loaded. A load test system, wherein the test execution terminal operates a client module that is also distributed according to the load test operation information distributed from the test manager terminal, and uses the distributed test data to perform the load test Load test operation execution means for generating load access to a test target server and a reference server in a terminal, the load test terminal includes a load test target server to be a load test target, a reference server, and the test The load test target server and reference server in the manager terminal Means for notifying the load test result information in the test manager terminal, wherein the test manager terminal distributes the load test operation information, the test client module and the test data to each test execution terminal, and the test target server and the reference server. Means for determining the load of the load test target server based on the difference of the load test result information.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of a load test system for a network server according to the present invention will be described with reference to the accompanying drawings. However, the following description also serves as an explanation of an embodiment of a recording medium in which a test manager terminal and a test execution terminal according to the present invention and an application for realizing these functions are recorded.
[0012]
FIG. 1 is a system block diagram of a test manager terminal and a test execution terminal according to the present invention.
[0013]
Reference numeral 2 denotes a CPU (Central Processing Unit).
[0014]
The data input from the
A
[0015]
The signal output from the
[0016]
6 controls the modem 7 and the like connected when performing communication using the public network. In other words, the load test system can also target load tests in network connections using public networks other than LAN.
[0017]
Reference numeral 8 denotes an input control unit, to which 9 input / output devices are connected. The operator operates the input / output device 9 to give a system operation command or the like.
[0018]
[0019]
An output
An external storage
[0020]
FIG. 2 shows a network relationship diagram of terminals forming the load test system of the present embodiment.
[0021]
A load test system is composed of a plurality of terminals connected to the same network.
[0022]
[0023]
[0024]
FIG. 3 shows what data is exchanged between the test manager terminal and each test execution terminal constituting the load test system of this embodiment, and how the test target server apparatus on the network is communicated. The procedure of processing for generating load access and obtaining the performance result is shown below.
[0025]
(1): The
[0026]
(2): The data set in (1) is transmitted using only the necessary data for each test execution terminal using the distribution means of the
[0027]
The 36 delivery method uses the http protocol, which is TCP / IP, in order to reliably deliver even large data.
[0028]
{Circle over (3)} Each test execution terminal performs initialization processing of the distributed client module in accordance with the test
[0029]
{Circle over (4)} Each test execution terminal / loaded test terminal obtains the internally set time over the network by 38 with respect to the test manager terminal. Each terminal sets the acquired set time in its own terminal.
[0030]
(5): The test manager terminal starts a load test according to each test start instruction command.
[0031]
{Circle around (6)} Each test terminal activates the client module in accordance with the instructed test operation information, and causes load access to the
[0032]
The
[0033]
The test manager terminal during testing stores the test support status, each test terminal stores the load access processing status, and the loaded test terminal stores the resource usage status in its own terminal when accessing the test execution terminal. .
[0034]
{Circle around (7)} When the load access process of {circle around (6)} above is completed, each test execution terminal uploads 35 the test result information to the test manager. At this time, the
[0035]
FIG. 4 shows an example of a module configuration diagram of the load test system according to the present invention.
[0036]
In the figure, as an example, a load test is performed on one load-tested network server using a load test system composed of one test manager terminal and “n” test execution terminals. Explained. Here, for simplicity of explanation, an example is given in which a load is applied to one network server. However, in the present invention, a load test is performed on a plurality of loaded test terminals without being restricted by this limitation. Can be performed.
[0037]
The test execution
[0038]
The test operation
[0039]
The
[0040]
The data distribution module is a module for distributing instructed data to a desired terminal on the network. The test manager terminal is used to distribute test-related data to each test execution terminal, and the test execution terminal is used to transmit test result information to the test manager terminal.
The function of the test manager terminal is provided by the
[0041]
The load generation processing management module 45 activates the client module according to the test operation information received by the
[0042]
Here, the load generation process is realized by starting up the client module distributed from the test manager under the instructed condition. A plurality of client modules can be activated at the same time (in the case of this example, "N"), and a plurality of different client modules can be activated simultaneously on one test execution terminal. Is also possible.
[0043]
The operation status of each client module is notified to the test manager terminal using the
[0044]
46,
[0045]
The network access control module performs network control processing in a load test such as mapping a plurality of network addresses in a pseudo manner to a plurality of load generation processing.
[0046]
48 obtains the state / usage resource of the loaded test terminal or the state / usage resource of the load
[0047]
FIG. 5 shows a module configuration diagram when the load target server is replaced with a reference server provided by the load test system based on the module configuration diagram of the load test system according to the present invention described in FIG. Since 51 to 58 are the same as the
[0048]
[0049]
FIG. 6 shows a data structure example of the test operation information in the present invention.
[0050]
In the
[0051]
In the test
[0052]
In the number of test execution terminals 603, the number of test execution terminals managed by this setting information is set. Subsequent test terminal setting information exists as much as this number.
[0053]
As described above, 601 to 603 are management information of the entire test operation information.
[0054]
In the test execution terminal information 604, identification information on the network such as the network address of the terminal that executes the test according to the subsequent setting information is set.
[0055]
In the number 605 of load processes to be generated, the number of client processes (threads or processes) for generating a load generated in the test execution terminal is set. The subsequent “load processing setting” information exists for this number of minutes.
[0056]
In the process simultaneous execution information 606, when a plurality of load processes are generated by the execution terminal, the number of processes to be generated simultaneously and the generation interval thereof are set.
[0057]
In the time-out information 607, a threshold value for determining a time-out in each process in the terminal is set.
[0058]
As described above, reference numerals 604 to 607 are management information regarding all processes in the test execution terminal.
[0059]
The client module name 608 is a name of a client module used for generating the load process. This module is distributed from the test manager terminal to each test execution terminal (or, in the case of a module originally present in the test execution terminal, duplication check is performed and useless distribution processing is not performed).
[0060]
The test data file name 609 is data used when the client module 608 accesses the target server in the load process.
In the client module
[0061]
The former is, for example, a module in which a client module performs a series of printing processes.
1. 1. Function to initialize the printer 2. Function for enumerating
[0062]
In the latter case, for example, when a plurality of load processes are performed on one test execution terminal, for example, when the
[0063]
Whether the virtual network address information 611 is accessed from an individual network terminal for each individual load process when a plurality of load processes are executed by a single test execution terminal. It is information for realizing the function for pretending to be.
[0064]
By providing this information to the network access control module described above, the above function can be realized.
[0065]
In the load
[0066]
In the
[0067]
As described above, 608 to 613 are setting information for each load process.
[0068]
FIG. 7 is a flowchart showing an operation instruction processing procedure from the test manager terminal to the test execution terminal in the load test execution process in the test execution terminal of the present invention.
[0069]
As a premise, in order to simplify the description of the flowchart, it is assumed that the settings regarding the test setting information, the test client module, and the test data are completed in the test manager prior to the processing of the flowchart.
[0070]
First, in step S701, a test start instruction event is issued to the test execution terminal. In step S702, it is checked whether the test operation information file has been successfully transmitted. If each test execution terminal succeeds in transmitting the test operation information file, the process proceeds to step S703, and if it is not, the process proceeds to step S712 to stop the test.
[0071]
In step S703, the load processing is started according to the setting instructed using data necessary for the test distributed to the test execution terminal, and the test preparation processing is executed.
[0072]
In step S704, it is checked whether or not each test execution terminal has successfully prepared for the test. If not successful, an error notification in step S705 is received from each test execution terminal.
[0073]
The test execution terminal checks whether data necessary for test execution (test setting information, test client module, and test data) exists. If it is determined that the data exists, the process proceeds to step S707 and exists. If it is determined not to do so, the process proceeds to step S707.
[0074]
In step S705, the test execution terminal notifies the test manager of error information that the instructed test cannot be executed because data exists.
[0075]
In step S706, the process waits for a test preparation completion event to be issued from the test execution terminal.
[0076]
In step S707, the test manager issues a test start instruction event to the test execution terminal.
[0077]
If it is determined in step S708 that the event is a test start instruction event from the test manager, the process proceeds to step S709. If not, the event waiting process is performed again in step S708.
[0078]
In step S709, the test execution terminal instructs execution of all virtual clients, and performs load generation processing on the target server.
[0079]
In step S710, the test manager monitors the test completion of all the test execution terminals. When the end notification of all the test execution terminals is received, the notification proceeds to step S711. In step S711, all load test process notifications are received from the test execution terminal, and the test process is terminated.
[0080]
FIG. 8 is a flowchart showing an example of the operation instruction processing procedure of the reference server during the load test using the reference server.
[0081]
However, here, the test operation settings have already been made at the test manager terminal, and at each test execution terminal, the test operation settings, test data, etc. have already been sent to each test execution terminal. It is assumed that the preparation for performing the load test based on the set test operation has already been completed.
[0082]
In S801, a test start instruction is issued from the test manager terminal to each test execution terminal.
[0083]
In S802, each client on each test execution terminal performs load access to the reference server all at once.
[0084]
In S803, the reference server on the loaded test terminal that has received the access records the access time / access partner information and the used resource information.
[0085]
In step S804, a response is sent to the client on the test execution terminal.
[0086]
In S805, when an end event is received from the test manager terminal, the process proceeds to S806 to end the test. If there is no end event, the process returns to S802. In S806, the test result information is transmitted to the test manager terminal.
[0087]
FIG. 9 is a table of items of result information recorded by the reference server during a load test using the reference server.
[0088]
[0089]
[0090]
[0091]
The difference between the
[0092]
[0093]
The difference between the
[0094]
[Other application examples of the present invention]
Application examples of the present invention will be described below.
[0095]
<Application example 1>
In the present invention, data (test setting information, test client module and test data) necessary for each test execution terminal to perform a load test is distributed from the test manager to each test execution terminal. It was.
[0096]
However, in order to reduce the load on the test manager, the following processing may be performed so that each test terminal acquires data necessary for the test.
[0097]
Step1: Preparation of data necessary for testing is completed in Test Manager.
[0098]
Step2: Notify each test execution terminal of an event that instructs acquisition of data necessary for the test.
[0099]
Step3: Each test execution terminal requests the test data required by itself from the test manager and downloads the data.
[0100]
Step4: When the test execution terminal finishes downloading the necessary data, it prepares for test execution and issues an event to the test manager for notification.
[0101]
Step 5: When the test manager can confirm that the test execution preparation completion event has arrived from all the test execution terminals, the test manager issues a test execution instruction event to all the test execution terminals.
[0102]
【The invention's effect】
As is apparent from the above description, according to the present invention, various client access patterns can be realized for server systems on various networks, and the entire system including the efficient network can be inspected. Is possible. Further, it is possible to provide a server performance information acquisition function in a state closer to the actual environment by measuring the load amount of the load test system applied during the load test and subtracting the values.
[Brief description of the drawings]
FIG. 1 is a system block diagram of a test manager terminal and a test execution terminal according to the present invention.
FIG. 2 is a diagram showing an example of a network configuration in a load test system according to the present invention.
FIG. 3 is a diagram showing a data exchange procedure in the load test system according to the present invention.
FIG. 4 is a module configuration diagram of a load test system according to the present invention.
FIG. 5 is a module configuration diagram of a load test system when a reference server according to the present invention is used.
FIG. 6 is a diagram showing an example data structure of test operation information in the present invention.
FIG. 7 is a flowchart showing a load test execution processing procedure in the test execution terminal of the present invention.
FIG. 8 is a flowchart showing a load test execution processing procedure in the test execution terminal of the present invention.
FIG. 9 is a diagram showing test result information items acquired during the test of the reference server of the present invention.
[Explanation of symbols]
1 System bus 2 CPU
3 PMEM
4
Claims (3)
前記テスト実行端末は、前記テストマネージャ端末から配信された負荷テスト動作情報に従って同じく配信されたクライアントモジュールを動作させ、配信されたテストデータを利用して前記被負荷テスト端末内のテスト対象サーバ及びリファレンスサーバに対して負荷アクセスを発生させる負荷テスト動作実行手段を備え、
前記被負荷テスト端末は、負荷テストの対象となる負荷テスト対象サーバと、リファレンスサーバと、前記テストマネージャ端末に当該負荷テスト対象サーバ及びリファレンスサーバにおける負荷テスト結果情報を通知する手段とを備え、
前記テストマネージャ端末は、負荷テスト動作情報、テスト用クライアントモジュール及びテストデータを各テスト実行端末に配信する手段と、前記テスト対象サーバ及びリファレンスサーバの負荷テスト結果情報の差分により前記負荷テスト対象サーバの負荷を求める手段とを備える
ことを特徴とする負荷テストシステム。A load test system having one test manager terminal for instructing execution of a load test, a plurality of test execution terminals for actually executing a load test , and a loaded test terminal to which a load is applied,
The test execution terminal operates the client module that is also distributed according to the load test operation information distributed from the test manager terminal , and uses the distributed test data to test the test target server and the reference in the loaded test terminal. comprising a load test operation execution means causes generating load access to the server,
The load test terminal includes a load test target server to be a load test target, a reference server, and a means for notifying the test manager terminal of load test result information in the load test target server and the reference server,
The test manager terminal is configured to distribute load test operation information, a test client module and test data to each test execution terminal, and a difference between the load test result information of the test target server and the reference server. A load test system comprising: means for obtaining a load.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002174458A JP4208493B2 (en) | 2002-06-14 | 2002-06-14 | Load test system for network server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002174458A JP4208493B2 (en) | 2002-06-14 | 2002-06-14 | Load test system for network server |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004021523A JP2004021523A (en) | 2004-01-22 |
JP4208493B2 true JP4208493B2 (en) | 2009-01-14 |
Family
ID=31173420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002174458A Expired - Fee Related JP4208493B2 (en) | 2002-06-14 | 2002-06-14 | Load test system for network server |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4208493B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4849933B2 (en) | 2006-03-29 | 2012-01-11 | 富士通株式会社 | Web load test method and web load test program |
CN102043698A (en) * | 2010-09-15 | 2011-05-04 | 苏州凌创电子系统有限公司 | Network-based functional test load simulation device |
JP2013232035A (en) * | 2012-04-27 | 2013-11-14 | Pfu Ltd | Information processing system, information processing device, information processing method, and program |
KR101445538B1 (en) | 2013-02-01 | 2014-09-29 | 에스케이플래닛 주식회사 | Method and apparatus for testing server for clouding streaming service |
KR101445539B1 (en) | 2013-02-04 | 2014-09-29 | 에스케이플래닛 주식회사 | Method for testing server for cloud streaming service, apparatus and system therefor |
KR101544194B1 (en) * | 2014-01-14 | 2015-08-12 | 에스케이플래닛 주식회사 | Method of testing cloud streaming server and apparatus for the same |
JP6383424B2 (en) * | 2014-01-14 | 2018-08-29 | エスケー テックス カンパニー、リミテッド | Application error detection method for cloud streaming service, apparatus and system therefor |
JP7134937B2 (en) * | 2019-10-30 | 2022-09-12 | 株式会社東芝 | Information processing device, program and information processing system |
-
2002
- 2002-06-14 JP JP2002174458A patent/JP4208493B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004021523A (en) | 2004-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3595783B2 (en) | Load test execution device and system, method therefor, and program therefor | |
CN108694117B (en) | Method and device for managing test environment based on container technology | |
US6810364B2 (en) | Automated testing of computer system components | |
CN110430100B (en) | Network connectivity detection method and device | |
CN111124850A (en) | MQTT server performance testing method, system, computer equipment and storage medium | |
US8332490B2 (en) | Method, apparatus and program product for provisioning a computer system | |
TWI344090B (en) | Management of a scalable computer system | |
KR102158754B1 (en) | Method and apparatus for operating on smart network interface card | |
WO2004015569A2 (en) | Method and apparatus for booting with remote configuration data | |
TW201444320A (en) | Setup method and system for client and server environment | |
CN110795158A (en) | Bare computer server management method, system, electronic equipment and storage medium | |
JP4208493B2 (en) | Load test system for network server | |
US8645926B2 (en) | Testing a system management program | |
CN116263694A (en) | Warehouse cluster deployment method and device and computing equipment | |
KR20200048633A (en) | System and method for automatically testing software | |
JP4443200B2 (en) | Information system | |
CN113448730A (en) | Service processing method and device, computer equipment and storage medium | |
CN117041111A (en) | Vehicle cloud function test method and device, electronic equipment and storage medium | |
CN109120433B (en) | Method and apparatus for containerized deployment of hosts | |
JP4208494B2 (en) | Load test system for network server | |
JP2001028586A (en) | Testing method for network device and storage medium | |
WO2014036693A1 (en) | Service deployment method and device | |
CN107659621B (en) | RAID control card configuration method and device | |
US7152189B2 (en) | Testing distributed services by using multiple boots to timeshare a single computer | |
CN115454896A (en) | SMBUS-based SSD MCTP control message verification method and device, computer equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050107 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080107 |
|
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: 20080930 |
|
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: 20081021 |
|
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: 20111031 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131031 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |