JP2004021523A - Load test system to network server - Google Patents
Load test system to network server Download PDFInfo
- Publication number
- JP2004021523A JP2004021523A JP2002174458A JP2002174458A JP2004021523A JP 2004021523 A JP2004021523 A JP 2004021523A JP 2002174458 A JP2002174458 A JP 2002174458A JP 2002174458 A JP2002174458 A JP 2002174458A JP 2004021523 A JP2004021523 A JP 2004021523A
- Authority
- JP
- Japan
- Prior art keywords
- test
- load
- terminal
- load test
- data
- 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.)
- Granted
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ネットワーク上に存在する種々のネットワークサーバシステムに対し、様々なアクセスパターンをシミュレートして、負荷を発生させることにより、サーバ負荷テストを行うため、指定した複数の仮想クライアントを1台のテスト実行端末内に生成し、そのテスト実行端末を複数管理するコテストマネージャ端末を1台用意し、そのテストマネージャ端末から生成した複数の仮想クライアントに対して様々な負荷テスト動作を指示し、対象のネットワークサーバのパフォーマンス結果を記録し、パフォーマンステストを行うことができる負荷テストシステムに関する。
【0002】
【従来の技術】
近年、ネットワーク技術の発達と共に、ネットワーク上でのサーバ/クライアントシステムとして実現されるアプリケーションが増加している。このようなアプリケーションのテストは、従来のスタンドアロン型のアプリケーションとは異なり、そのパフォーマンスの測定及びボトルネックの検出を行うためにはネットワークを含めたシステム全体の検査が必要となるために、非常に難しくなっている。
【0003】
上記のような目的のために、従来のネットワークサーバへの負荷テストシステムでは、実際に複数のクライアント端末を用意して、それら各々に個々のネットワークアドレスを設定し、クライアントアプリケーションを実行して、実際にサーバへのアクセスを行って負荷を発生させていた。
【0004】
又、幾つかの負荷テストツールにおいては、1台の端末上で複数のクライアント処理を生成してサーバにアクセスを発生させていたが、各クライアント処理は、全て同じネットワークアドレスを利用してサーバにアクセスを行っていたので、実際の異なるネットワークアドレスを持つ複数クライアント端末からのアクセスを忠実にシミュレートすることはできなかった。
【0005】
【発明が解決しようとする課題】
従来のネットワークサーバへの負荷テストシステムでは、実際に複数のクライアント端末を用意して、それら各々に個々のネットワークアドレスを設定し、クライアントアプリケーションを実行して、実際にサーバへのアクセスを行って負荷を発生させているが、このようなシステムだと、使用する端末数、その端末を設置するスペース、その端末をオペレーションする人等、多くのコストが掛かってしまう。
【0006】
又、全て人の手によるオペレーションだとテストの再現性を保つのは非常に困難である。
【0007】
これら問題を解決するため、本発明は、指定した複数の仮想クライアントを1台のテスト実行端末内に生成し、そのテスト実行端末を複数管理するコテストマネージャ端末を1台用意し、そのテストマネージャ端末から生成した複数の仮想クライアントに対して様々な負荷テスト動作を行えるシステムを提供することを目的とする。
【0008】
又、逆に1台のテスト実行端末上で複数のクライアント処理を行うと、テスト実行端末に対しても負荷を与えてしまう。当然、1台のテスト実行端末内から被負荷テスト端末に対し複数のアクセスを行うより、1台1台の端末からのアクセスの方がより正確な使用環境に近い環境を再現できる。
【0009】
このような問題を解決するために、本発明は、負荷テストを行う事前処理として、被負荷テスト端末上の負荷テスト対象サーバに代わるリファレンスサーバに対し、負荷テストを行うことにより負荷テストシステム自体の負荷データを取得でき、この取得データを実際の負荷テスト対象サーバに対して行った負荷テスト結果データ情報から引くことにより、負荷テスト対象サーバのみの負荷テスト結果情報を取得することが可能なシステムを提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するため、本発明は、負荷テストの実行指示を行う1台のテストマネージャ端末と、実際に負荷テストを実行する複数のテスト実行端末と、負荷を掛けられる被負荷テスト端末から構成され、上記テスト実行端末上には、テストマネージャ端末で指定した数の負荷テスト対象サーバに対する仮想クライアントを生成し、上記各仮想クライアントは固有のIPアドレスを持ち、様々な負荷テスト動作をテストマネージャ端末から指示することにより被負荷テスト端末上の負荷テスト対象サーバに対し負荷アクセスを発生させる負荷テスト対象サーバへの負荷テストシステムにおいて、上記設定手段で設定/指示された負荷テスト動作情報、テスト用クライアントモジュール及びテストデータを各テスト実行端末に配信する手段を備え、配信された負荷テスト動作情報に従って同じく配信されたクライアントモジュールを動作させ、配信されたテストデータを利用して指示されたテスト対象サーバに対して負荷アクセスを発生することができる負荷テスト動作実行手段をテスト実行端末上に備えることを特徴とする。
【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]
TECHNICAL FIELD OF THE INVENTION
The present invention simulates various access patterns on various network server systems existing on a network to generate a load, thereby performing a server load test. One co-test manager terminal that is generated in the test execution terminal and manages the plurality of test execution terminals is prepared, and various load test operations are instructed to the plurality of virtual clients generated from the test manager terminal, The present invention relates to a load test system capable of recording a performance result of a target network server and performing a performance test.
[0002]
[Prior art]
In recent years, with the development of network technology, applications realized as server / client systems on a network have been increasing. Testing such applications is very difficult, unlike traditional stand-alone applications, because measuring their performance and detecting bottlenecks requires testing the entire system, including the network. Has become.
[0003]
For the purpose described above, in the conventional load test system for a network server, a plurality of client terminals are actually prepared, individual network addresses are set for each of them, and a client application is executed. Access to the server to generate a load.
[0004]
Also, in some load test tools, a plurality of client processes are generated on one terminal to generate access to the server. However, each client process uses the same network address for the server. Since access was made, 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 them, and a client application is executed to actually access the server and perform load. However, such a system requires many costs, such as the number of terminals to be used, a space for installing the terminals, and a person who operates the terminals.
[0006]
In addition, it is very difficult to maintain the reproducibility of the test when the operation is performed manually.
[0007]
In order to solve these problems, the present invention creates a plurality of designated virtual clients in one test execution terminal, prepares one co-test manager terminal that manages the plurality of test execution terminals, and provides the test manager An object is to provide a system that can perform 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, an access from one terminal can reproduce an environment closer to a more accurate use environment than a plurality of accesses to the load 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 the load test target server on the load test terminal as a pre-process for performing a load test, thereby executing the load test system itself. A system capable of acquiring load data and subtracting the acquired data from the load test result data performed on the actual load test target server to obtain the load test result information of only the 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 comprises one test manager terminal for giving a load test execution instruction, a plurality of test execution terminals for actually executing a load test, and a load test terminal to which a load can be applied. Then, on the test execution terminal, virtual clients for the number of load test servers specified by the test manager terminal are generated, each virtual client has a unique IP address, and various load test operations are performed by the test manager terminal. In the load test system for the load test target server which generates a load access to the load test target server on the load test terminal by instructing from the load test operation information, the load test operation information set / instructed by the setting means, the test client Means for distributing module and test data to each test execution terminal A load test operation that can operate the client module that is also distributed according to the distributed load test operation information and generate a load access to the specified test target server using the distributed test data. The means is provided on the test execution terminal.
[0011]
BEST MODE FOR CARRYING OUT 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 test medium terminal and a test execution terminal according to the present invention and a recording medium on which an application for realizing those functions is 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 input device 10 is stored as code information in PMEM which is also a text memory.
[0015]
A signal output from the
[0016]
[0017]
An input control unit 8 is connected to an input /
[0018]
Reference numeral 10 denotes a display control unit, and reference numeral 11 denotes a display device connected to the display control unit. The result of the input instruction by the
[0019]
An output
An external storage
[0020]
FIG. 2 shows a relationship diagram on a network 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]
21 indicates a network.
[0023]
[0024]
FIG. 3 shows what kind of data is exchanged between the test manager terminal and each test execution terminal which constitute the load test system of the present embodiment, and how the test target server device on the network is connected. The following describes the processing procedure for generating a load access and acquiring the performance result.
[0025]
{Circle around (1)} The
[0026]
(2): Using the distribution means of the
[0027]
The
[0028]
{Circle around (3)} According to the test
[0029]
{Circle around (4)} Each test execution terminal / load test terminal obtains an internal set time via the network by the test manager terminal 38. Each terminal sets the acquired set time in its own terminal.
[0030]
{Circle around (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 according to the specified test operation information, and generates a load access to the test target server 34 using the distributed test data. At this time, the operation state of the client module is notified to the test manager terminal as status information.
[0032]
The
[0033]
During the test, the test manager terminal saves the test support status, each test terminal saves the load access processing status, and the loaded test terminal saves the resource usage status within the own terminal when the test execution terminal accesses the test result file, respectively. .
[0034]
{Circle around (7)} When the load access processing of the above (6) is completed, each test execution terminal uploads the test result
[0035]
FIG. 4 shows an example of a module configuration diagram of the load test system according to the present invention.
[0036]
The figure shows an example in which a load test is performed on one load test network server using a load test system including one test manager terminal and “n” test execution terminals. Has been explained. Here, for the sake of simplicity, an example in which a load is applied to one network server is shown. However, the present invention is not limited to this limitation, and a load test is performed on a plurality of load test terminals. It is possible to perform
[0037]
The test execution
[0038]
The test operation
[0039]
The
[0040]
The data distribution module is a module for distributing designated 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 functions of the test manager terminal are provided by the
[0041]
The load generation processing management module 45 activates the client module according to the test operation information received by the data distribution module 44, and generates a load access to the test target server using the distributed test data.
[0042]
Here, the load generation processing is realized by starting up the client module distributed from the test manager under the designated conditions. A plurality of client modules can be started at the same time ("N" in the case of the example in the figure), and a plurality of different client modules can be started 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 event
[0044]
The
[0045]
The network access control module performs a network control process in a load test such as mapping a plurality of network addresses in a pseudo manner with respect to a plurality of load generation processes.
[0046]
[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 modules of 41 to 48, the description is omitted.
[0048]
[0049]
FIG. 6 shows an example of the data structure of the test operation information in the present invention.
[0050]
In the data identification information 601, an identification ID indicating that the data is test operation information data of the present load test system, version management information of information, and the like are set.
[0051]
In the test
[0052]
In the number 603 of test execution terminals, the number of test execution terminals managed by this setting information is set. Subsequent test terminal setting information exists as many as this number.
[0053]
As described above, 601 to 603 are management information of the entire test operation information.
[0054]
In the test
[0055]
In the
[0056]
In the process
[0057]
In the
[0058]
As described above, 604 to 607 are management information regarding all processes in the test execution terminal.
[0059]
The
[0060]
The test data file
In the client module
[0061]
The former is, for example, a module in which a client module performs a series of printing processes,
1. Function to initialize the printer
2. Ability to enumerate printers
3. Function to register a job in the printer
4. Function to enumerate the status of the indicated printer
In this case, information for designating the function to be performed in the load processing, for example, 1, 2, or 3 is set.
[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]
The virtual
[0064]
By providing this information to the above-described network access control module, the above function can be realized.
[0065]
In the
[0066]
In the
[0067]
As described above, 608 to 613 are setting information for each load process.
[0068]
FIG. 7 is a flowchart showing a procedure of an operation instruction process from the test manager terminal to the test execution terminal during 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 this flowchart, it is assumed that the settings regarding the test setting information, the test client module, and the test data have been completed by the test manager prior to the processing of this 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 transmission of the test operation information file was successful. If each test execution terminal has successfully transmitted the test operation information file, the process proceeds to step S703; otherwise, the process proceeds to step S712 to stop the test.
[0071]
In step S703, using the data necessary for the test distributed to the test execution terminal, the load processing is started according to the instructed setting, and the test preparation processing is executed.
[0072]
In step S704, it is checked whether each test execution terminal has succeeded in test preparation. If not successful, an error notification of step S705 is received from each test execution terminal.
[0073]
The test execution terminal checks whether or not the data (test setting information, test client module, and test data) necessary for executing the test exists. If it is determined that the data exists, the process proceeds to step S707, and the process proceeds to step S707. If it is determined not to do so, the process moves to step S707.
[0074]
In step S705, the test execution terminal notifies the test manager of error information indicating that the specified test cannot be executed because the data exists.
[0075]
In step S706, the process waits until a test preparation completion event is 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 issues an execution instruction to all the virtual clients, and performs load generation processing on the target server.
[0079]
In step S710, the test manager monitors the test end of all test execution terminals. Upon receiving the end notifications of all the test execution terminals, the process proceeds to step S711. In step S711, all the load test processing notifications are received from the test execution terminal, and the test processing ends.
[0080]
FIG. 8 is a flowchart illustrating an example of a procedure of an operation instruction processing of the reference server at the time of the load test using the reference server.
[0081]
However, here, the test operation settings have already been made in the test manager terminal, and in each test execution terminal, the test operation settings, test data, etc. have already been transmitted to each test execution terminal. It is assumed that the preparation for performing the load test based on the set test operation is 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 simultaneously performs load access to the reference server.
[0084]
In S803, the reference server on the loaded test terminal that has received the access records the access time / access partner information and records the used resource information.
[0085]
In S804, a reply is sent to the client on the test execution terminal.
[0086]
In step S805, upon receiving an end event from the test manager terminal, the flow shifts to step 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 shows a table of items of result information recorded by the reference server at the time of a load test using the reference server.
[0088]
[0089]
[0090]
[0091]
The difference between the
[0092]
[0093]
The difference between the memory usage at 908 and the memory usage at 905 is the memory usage (911) used by the load test target server for client access.
[0094]
[Other application examples of the present invention]
An application example 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. Was.
[0096]
However, in order to reduce the load on the test manager, a process in which each test terminal acquires data necessary for a test may be performed in the following process.
[0097]
Step 1: The test manager has completed preparation of data necessary for the test.
[0098]
Step 2: Notify each test execution terminal of an event instructing acquisition of data necessary for the test.
[0099]
Step 3: Each test execution terminal requests the test manager for test data required by itself, and downloads the data.
[0100]
Step 4: When the test execution terminal finishes downloading necessary data, the test execution terminal prepares for execution of the test, and notifies the test manager of the result by issuing an event.
[0101]
Step 5: The test manager issues a test execution instruction event to all test execution terminals when it is confirmed that a test execution preparation completion event has been received from all test execution terminals.
[0102]
【The invention's effect】
As is clear from the above description, according to the present invention, various client access patterns are realized for server systems on various networks, and efficient inspection of the entire system including the network is realized. Becomes 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 at the time of the load test and comparing the measured 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 illustrating an example of a data structure of test operation information according to the present invention.
FIG. 7 is a flowchart illustrating 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 obtained during a test of the reference server of the present invention.
[Explanation of symbols]
1 System bus
2 CPU
3 PMEM
4 Network control unit
5 Network port
6 Communication control unit
7 Modem
8 Input control unit
9 Input device
10 Display control unit
11 Display device
12 Output device controller
13 Printer
14 External storage device controller
15 External storage device
Claims (4)
上記設定手段で設定/指示された負荷テスト動作情報、テスト用クライアントモジュール及びテストデータを各テスト実行端末に配信する手段を備え、配信された負荷テスト動作情報に従って同じく配信されたクライアントモジュールを動作させ、配信されたテストデータを利用して指示されたテスト対象サーバに対して負荷アクセスを発生することができる負荷テスト動作実行手段をテスト実行端末上に備えることを特徴とするネットワークサーバへの負荷テストシステム。The test execution terminal includes 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 load test terminal to which a load can be applied. Virtual clients for the number of load test servers specified by the manager terminal are generated, each of the virtual clients has a unique IP address, and various load test operations are instructed from the test manager terminal on the load test terminal. A load test system for a load test target server that generates a load access to the load test target server,
Means for distributing the load test operation information, the test client module and the test data set / instructed by the setting means to each test execution terminal, and operating the client modules which are also distributed according to the distributed load test operation information Load test on a network server, comprising load test operation executing means capable of generating a load access to a test target server instructed using distributed test data on a test execution terminal. system.
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 true JP2004021523A (en) | 2004-01-22 |
JP4208493B2 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) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007265284A (en) * | 2006-03-29 | 2007-10-11 | Fujitsu Ltd | Web load testing method and web load testing 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 |
WO2015108283A1 (en) * | 2014-01-14 | 2015-07-23 | 에스케이플래닛 주식회사 | Application error detection method for cloud streaming service, and apparatus and system therefor |
KR101544194B1 (en) * | 2014-01-14 | 2015-08-12 | 에스케이플래닛 주식회사 | Method of testing cloud streaming server and apparatus for the same |
JP2021071872A (en) * | 2019-10-30 | 2021-05-06 | 株式会社東芝 | Information processing device, program and information processing system |
-
2002
- 2002-06-14 JP JP2002174458A patent/JP4208493B2/en not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007265284A (en) * | 2006-03-29 | 2007-10-11 | Fujitsu Ltd | Web load testing method and web load testing program |
US8087008B2 (en) | 2006-03-29 | 2011-12-27 | Fujitsu Limited | 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 |
WO2015108283A1 (en) * | 2014-01-14 | 2015-07-23 | 에스케이플래닛 주식회사 | Application error detection method for cloud streaming service, and apparatus and system therefor |
KR101544194B1 (en) * | 2014-01-14 | 2015-08-12 | 에스케이플래닛 주식회사 | Method of testing cloud streaming server and apparatus for the same |
US10282246B2 (en) | 2014-01-14 | 2019-05-07 | Sk Techx Co., Ltd. | Application error detection method for cloud streaming service, and apparatus and system therefor |
JP2021071872A (en) * | 2019-10-30 | 2021-05-06 | 株式会社東芝 | Information processing device, program and information processing system |
JP7134937B2 (en) | 2019-10-30 | 2022-09-12 | 株式会社東芝 | Information processing device, program and information processing system |
Also Published As
Publication number | Publication date |
---|---|
JP4208493B2 (en) | 2009-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3595783B2 (en) | Load test execution device and system, method therefor, and program therefor | |
TWI344090B (en) | Management of a scalable computer system | |
US8332490B2 (en) | Method, apparatus and program product for provisioning a computer system | |
US20010016867A1 (en) | Framework system and method for testing server performance | |
CN106919485B (en) | System based on hardware testing tool configured on server | |
TW201444320A (en) | Setup method and system for client and server environment | |
EP1543415A2 (en) | Method and apparatus for booting with remote configuration data | |
CN110138577B (en) | Cluster creation method, first server and readable storage medium | |
US20040139194A1 (en) | System and method of measuring and monitoring network services availablility | |
JP4208493B2 (en) | Load test system for network server | |
US20040153579A1 (en) | Virtual disc drive control device | |
US8645926B2 (en) | Testing a system management program | |
JP2009026248A (en) | Emulation device and emulation program | |
CN106875765B (en) | Electronic classroom implementation method and device based on VDI | |
CN108694116B (en) | Network stability testing method, device and system of VPC cluster | |
CN117041111A (en) | Vehicle cloud function test method and device, electronic equipment and storage medium | |
CN116263694A (en) | Warehouse cluster deployment method and device and computing equipment | |
CN114598680B (en) | Domain name management method, device and storage medium | |
JP4208494B2 (en) | Load test system for network server | |
JP2001028586A (en) | Testing method for network device and storage medium | |
JP2004021525A (en) | Load test system for network server | |
CN115454896A (en) | SMBUS-based SSD MCTP control message verification method and device, computer equipment and storage medium | |
CN114090242A (en) | Model training method, device, equipment, storage medium and program product | |
CN111221687B (en) | Cloud storage testing system and method | |
JP2012029244A (en) | Communication device, communication system, communication method, program 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 (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs 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 |