試験プログラム、試験装置、および試験方法
【課題】高品質な性能評価試験を効率的におこなうこと。
【解決手段】予備系サーバBへのパケットS2Bの送信が、予備系サーバBからのパケットR1Bの受信に先立って実行されることとなる。したがって、主系サーバAに送信されたパケットS1A,S2Aの時間間隔と、予備系サーバBに送信されたパケットS1B,S2Bの時間間隔が同一となる。このように、TCP/IPに基づく通信ではヘッダ情報を適切に書き換えることにより、遠隔にある予備系サーバBからの応答を待たずに主系サーバAからパケットを送出し続けることが可能である。これにより、予備系サーバBは主系サーバAと同一処理を同一のタイミングで実行することとなり、予備系サーバBに対し主系サーバAと同一の負荷試験を再現することができる。
【解決手段】予備系サーバBへのパケットS2Bの送信が、予備系サーバBからのパケットR1Bの受信に先立って実行されることとなる。したがって、主系サーバAに送信されたパケットS1A,S2Aの時間間隔と、予備系サーバBに送信されたパケットS1B,S2Bの時間間隔が同一となる。このように、TCP/IPに基づく通信ではヘッダ情報を適切に書き換えることにより、遠隔にある予備系サーバBからの応答を待たずに主系サーバAからパケットを送出し続けることが可能である。これにより、予備系サーバBは主系サーバAと同一処理を同一のタイミングで実行することとなり、予備系サーバBに対し主系サーバAと同一の負荷試験を再現することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象装置の試験をおこなう試験プログラム、試験装置、および試験方法に関する。
【背景技術】
【0002】
従来から、クライアント−サーバ間の性能評価の技術が開示されているが(たとえば、下記特許文献1,2を参照)、システムの移行などをおこなう際、予備系サーバを迅速かつ正確に検証するための性能評価試験技術が求められている。このような性能評価技術については、従来、以下のように処理がおこなわれている。
【0003】
図11は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。図11では、主系サーバAおよび試験端末Cが大阪にあり、予備系サーバBは東京にあるものとする。主系サーバAは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバBは、主系サーバAから移行予定のコンピュータである。この場合、試験実施者は、同一パターン(パケットとその応答パケット)で試験をする際、試験端末Cが主系サーバAからのパケットをキャプチャし、キャプチャしたパケットを主系サーバAと同一のシーケンスパターンで予備系サーバBに流すこととなる。
【0004】
図12は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。図12では、主系サーバAは大阪にあり、予備系サーバBは東京にあり、試験端末Cは東京および大阪の両方にあるものとする。この場合、試験実施者は、大阪において試験端末Cと主系サーバAとの間でパケット通信をおこなうとともに、東京において、主系サーバAと同じ時間間隔で、試験端末Cと予備系サーバBとの間でパケット通信をおこなう。これにより、主系サーバAと予備系サーバBとの相対的な性能評価をおこなうこととなる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−8648号公報
【特許文献2】特開平9−62601号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、図11の場合、主系サーバAと予備系サーバBとが異なる場所にあるため、主系サーバAと予備系サーバBとでのRTT(Round Trip Time:往復遅延時間)の差(距離と正の相関)が主系サーバAおよび予備系サーバBの処理間隔(処理負荷)に影響する。すなわち、予備系サーバBのパケット送受信間隔が主系サーバAのパケット送受信間隔に比べ大きくなるため、同一負荷で性能評価ができず、性能評価の品質の低下を招くという問題があった。
【0007】
一方、図12の場合、同一負荷で試験するには、図12に示したように、試験実施者は主系サーバAに対しパケットシーケンスのキャプチャをおこない、予備系サーバBのある現地(東京)に赴く。そして、キャプチャデータを基に同じシーケンスでパケットを送出する。したがって、試験実施者の移動などによる労力が発生し、試験実施者の負担が増大するという問題があった。
【0008】
本発明は、上述した従来技術による問題点を解消するため、高品質な性能評価試験を効率的におこなうことができる試験プログラム、試験装置、および試験方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、本試験プログラム、試験装置、および試験方法は、パケットを取得し、取得されたパケットの取得時刻を検出し、前記パケットが第1の対象装置に送信された第1のパケットである場合、前記第1のパケットの宛先を前記第2の対象装置のアドレスに設定し、検出された前記第1のパケットの取得時刻を送信時刻に設定することにより、前記第1のパケットを前記第2の対象装置への第2のパケットに変換し、変換された第2のパケットの送信時刻に前記第2のパケットを前記第2の対象装置に送信することを要件とする。
【発明の効果】
【0010】
本試験プログラム、試験装置、および試験方法によれば、高品質な性能評価試験を効率的におこなうことができるという効果を奏する。
【図面の簡単な説明】
【0011】
【図1】本実施の形態における性能評価試験の一例を示す説明図である。
【図2】実施の形態で用いられるコンピュータのハードウェア構成を示すブロック図である。
【図3】試験装置の機能的構成を示すブロック図である。
【図4】DBの記憶内容の一例を示す説明図である。
【図5】パケット変換例を示す説明図である。
【図6】第2のパケットの送信結果を示す説明図である。
【図7】実施の形態にかかる試験装置のパケットキャプチャ処理手順を示すフローチャートである。
【図8】実施の形態にかかる試験装置によるパケット変換・送信処理手順を示すフローチャートである。
【図9】第1および第2の対象装置の相対的な性能評価処理手順を示すフローチャートである。
【図10】第1および第2の対象装置の相対的な性能評価処理手順を示すフローチャートである。
【図11】従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。
【図12】従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。
【発明を実施するための形態】
【0012】
以下に添付図面を参照して、この発明にかかる試験プログラム、試験装置、および試験方法の実施の形態を詳細に説明する。
【0013】
図1は、本実施の形態における性能評価試験の一例を示す説明図である。図1では、試験端末Cおよび試験を行う対象である第1の装置の例として挙げられる主系サーバAが大阪にあり、試験を行う対象である第2の装置の例として挙げられる予備系サーバBは東京にあるものとする。なお、サーバA、Bの配置位置は例であって、他の配置関係でもよい。主系サーバAは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバBは、主系サーバAから移行予定のコンピュータである。
【0014】
試験装置100は、試験端末Cと主系サーバAと予備系サーバBと通信可能に接続される。たとえば、試験装置100と試験端末Cと主系サーバAは、同一のネットワークNa内にあり、予備系サーバBが存在するネットワークNbと通信可能である。
【0015】
たとえば、試験端末Cが主系サーバAにパケットS1Aを送信することにより、主系サーバAは試験端末CにパケットR1Aを応答として送信する。つぎに、試験端末Cが主系サーバAにパケットS2Aを送信することにより、主系サーバAは試験端末Cに応答としてパケットR2Aを送信する。このとき、試験装置100は、パケットS1A,S2A,R1A,R2Aをキャプチャする。
【0016】
また、試験装置100は、キャプチャしたパケットS1A,S2Aの宛先を主系サーバAのアドレスから予備系サーバBのアドレスに書き換えて、パケットS1AをパケットS1B、パケットS2AをパケットS2Bとして生成する。そして、試験装置100は、生成されたパケットS1B,S2Bを上記と同一のシーケンス(時間間隔)で予備系サーバBに送信する。
【0017】
たとえば、試験装置100は、パケットS1A,S2Aの取得時刻の間の時間間隔Tdを得ておき、パケットS1Bの送信後、Td時間だけ経過すると、パケットS2Bを送信する。これにより、試験装置100は、生成されたパケットS1B,S2Bを上記と同一のシーケンス(時間間隔)で予備系サーバBに送信することができる。
【0018】
また、第1の基準時刻(たとえば、パケットS1Aの受信よりも前に設定されたある時刻(試験開始時等))からパケットS1Aの取得時刻までに経過した時間Td1と、パケットS1Bの取得時刻までに経過した時間Td2とを取得し、第2の基準時刻(予備系サーバBの試験開始時刻等)から時間Td1経過すると、パケットS1Bを送信し、時間Td2が経過するとパケットS2Bを送信する。これによっても、試験装置100は、生成されたパケットS1B,S2Bを上記と同一のシーケンス(時間間隔)で予備系サーバBに送信することができる。
【0019】
これにより、パケットS1B,S2Bを受信した予備系サーバBは、パケットR1B,R2Bを返すこととなる。なお、いずれにしても、パケットS1Bの応答である予備系サーバBからのパケットR1Bの受信を待たずに、パケットS2Bを送信することを許容する。また、パケットS1B,S2Bの送信元を当該試験装置100のアドレスとすることで、予備系サーバBからの応答パケットR1B、R2Bの送信先が試験装置100となるように設定することもできる。なお、送信元を変更せず、試験端末Cが応答を受信することもできる。
【0020】
すなわち、パケットS1A,S2Aの時間間隔daとパケットS1B,S2Bの時間間隔dbが同一となるため、主系サーバAでのパケットS1A,S2Aの処理間隔Daと予備系サーバBでのパケットS1B,S2Bの処理間隔Dbも同一となる。このように、設置場所の違いをパケットS1A,S2Aの変換で吸収することにより、主系サーバAおよび予備系サーバBは同様の負荷で性能評価試験をされることとなる。このあと、主系サーバAからのパケットR1A,R2Aと予備系サーバBからのパケットR1B,R2Bとを比較することで、主系サーバAと予備系サーバBとの相対的な性能評価を実行することができる。
【0021】
(コンピュータのハードウェア構成)
図2は、実施の形態で用いられるコンピュータ(試験端末C、試験装置100、主系サーバA、予備系サーバB)のハードウェア構成の例を示すブロック図である。図2において、コンピュータは、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
【0022】
ここで、CPU201は、コンピュータの全体の制御を司る。ROM202は、OS(Operating System)やアプリケーションといった各種プログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
【0023】
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
【0024】
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0025】
インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
【0026】
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0027】
スキャナ212は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【0028】
(試験装置100の機能的構成)
つぎに、試験装置100の機能的構成について説明する。図3は、試験装置100の機能的構成を示すブロック図である。試験装置100は、取得部301と検出部302と算出部303と生成部304と送信部305と実行部306と出力部307とデータベース(以下、「DB310」)310とを備えている。
【0029】
取得部301〜出力部307は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。また、DB310は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置により、その機能を実現する。
【0030】
取得部301は、パケットを取得する機能を有する。具体的には、たとえば、試験端末Cと主系サーバAとの間で通信されるパケットや予備系サーバBと試験端末Cとの間で通信されるパケットをキャプチャする。取得部301で取得されたパケットは、ヘッダ・ペイロード解析され、DB310に格納される。
【0031】
検出部302は、取得部301によって取得されたパケットの送信先の対象装置の試験開始から当該パケットを取得するまでの取得時間や、送信先の対象装置からの当該パケットの応答パケットを検出する機能を有する。具体的には、たとえば、送信先の対象装置の試験開始時刻を基準としてパケットを取得したときの経過時間を取得時間として検出する。なお、取得されたパケットがセッション開始を示す同期パケットである場合、開始時刻が設定されていないため、同期パケットの取得時間tをt=0、すなわち、送信先の対象装置の試験開始時刻に設定することとなる。検出部302で検出された取得時刻はDB310に格納される。また、送信先の対象装置の試験開始時刻は、あらかじめ試験端末C、試験装置100とで同一の開始時刻を設定しておけばよい。
【0032】
算出部303は、あるパケットがキャプチャされてからそのパケットに応答するパケットがキャプチャされるまでの時間間隔を算出する機能を有する。具体的には、あるパケットの取得時間からそのパケットに応答する応答パケットの取得時間との差の絶対値を時間間隔として算出する。算出部303の詳細については後述する。算出部303で算出された時間間隔は、RTTとしてDB310に格納される。
【0033】
DB310は、取得されたパケットに記述されている情報や、検出部302で検出された取得時間、算出部303で算出された時間間隔を記憶する機能を有する。
【0034】
図4は、DB310の記憶内容の一例を示す説明図である。図4において、DB310は、セッションID項目、時間情報項目、IP(Internet Protocol)ヘッダ情報項目、TCP(Transmission Control Protocol)ヘッダ情報項目、アプリヘッダ情報項目、ペイロード項目を有する。DB310には、パケットごとに各項目の値が格納される。セッションID項目には、セッションIDが格納される。同一セッションであれば同一セッションIDが格納される。
【0035】
時間情報項目は、時間項目とRTT項目とを有する。時間項目には送信先の対象装置の試験開始からパケットを取得するまでの取得時間が格納される。同一セッションIDの中で最初にキャプチャされたパケット(同期パケット)については、取得時間として基準時刻0が格納される。
【0036】
たとえば、レコードr1はセッションID:abcのレコードr1〜r7の中で最初にキャプチャされたパケットのレコードであるため、基準時刻t=0が格納される。レコードr8も同様に、セッションID:defのレコードr8〜r10の中で最初にキャプチャされたパケットのレコードであるため、基準時刻t=0が格納される。
【0037】
また、キャプチャされたパケットが主系サーバAまたは予備系サーバBからのパケットである場合、RTT項目にRTTも格納される。RTTは、パケットがキャプチャされてからその応答パケットがキャプチャされるまでの時間間隔である。RTTは、算出部303で算出される。
【0038】
IPヘッダ情報項目は、送信元IP項目と宛先IP項目とを有する。送信元IP項目には、キャプチャされたパケットのヘッダに記述されている送信元IPアドレスが格納される。また、宛先IP項目には、キャプチャされたパケットのヘッダに記述されている宛先IPアドレスが格納される。図4では、試験端末CのIPアドレスを「10.10.10.10」とし、主系サーバAのIPアドレスを「20.20.20.20」としている。したがって、1行目のレコードr1は、試験端末Cから主系サーバAへのパケットを示しており、2行目のレコードr2は、その応答パケットを示している。
【0039】
TCPヘッダ情報項目は、発信元ポート項目、宛先ポート項目、シーケンス番号項目、確認応答番号項目、各種フラグ(SYN(同期)/ACK(確認応答)/PSH(プッシュ)/FIN(通信終了)/RST(リセット要求))項目を有する。発信元ポート項目には、キャプチャされたパケットのヘッダに記述されている送信元ポート番号が格納される。宛先ポート番号項目には、キャプチャされたパケットのヘッダに記述されている宛先ポート番号が格納される。
【0040】
シーケンス番号項目には、キャプチャされたパケットのヘッダに記述されているシーケンス番号が格納される。シーケンス番号は、キャプチャされたパケットの送信元で与えられたランダムな値である。
【0041】
確認応答番号項目には、キャプチャされたパケットのヘッダに記述されている確認応答番号が格納される。確認応答番号は、受け取った側のコンピュータが受け取ったパケットのシーケンス番号に基づいて付与する値である。たとえば、受け取ったパケットのシーケンス番号に1加算した値を確認応答番号とする。
【0042】
フラグ項目には、パケットの種類(SYN/ACK/PSH/FIN/RST)を特定するフラグが格納される。たとえば、レコードr1のパケットは、SYNパケットである。
【0043】
アプリヘッダ情報項目には、HTTP(HyperText Transfer Protocol)やPOP(Post Office Protocol)3/IMAP(Internet Message Access Protocol)といった各アプリケーションに関するヘッダ情報が格納される。
【0044】
ペイロード項目には、キャプチャされたパケットのうちヘッダを除いたデータ本体となるペイロードが格納される。なお、パケットのペイロードは格納しても破棄してもどちらでもよい。
【0045】
また、TCP/IPに従った通信は、3ウェイハンドシェイクによるセッション確立、データ転送、セッション終了を実行する一連の処理からなる。3ウェイハンドシェイクでは、まず試験端末CがSYNパケット(シーケンス番号:試験端末C側の乱数、確認応答番号:0、SYNフラグ)をパケットとして主系サーバAに送る。
【0046】
つぎに、そのSYNパケットを受け取った主系サーバAがSYN/ACKパケット(シーケンス番号:主系サーバA側の乱数、確認応答番号:SYNパケットのシーケンス番号+1、SYNフラグ、ACKフラグ)を試験端末Cに送る。さらに、そのSYN/ACKパケットを受け取った試験端末CがACKパケット(シーケンス番号:主系サーバA側の確認応答番号、確認応答番号:SYN/ACKパケットのシーケンス番号、ACKフラグ)をパケットとして主系サーバAに送る。
【0047】
図4に示した例では、レコードr1〜r3のパケット群とレコードr8〜r10のパケット群が、3ウェイハンドシェイクを実行するパケット群である。
【0048】
生成部304は、パケットが第1の対象装置に送信された第1のパケットである場合、第1のパケットの情報のうち宛先を第2の対象装置のアドレスに書き換えた第2のパケットを生成する機能を有する。
【0049】
具体的には、たとえば、試験開始後X分後に過去X分間分の送信パケット情報を取得し
、宛先IPアドレス、宛先ポート番号、シーケンス番号、確認応答番号を書き換える。シーケンス番号および確認応答番号はセッションを確立する際に乱数を使用するため、事前にセッションの確立を実行することとなる。
【0050】
TCP/IPに従った通信では、3ウェイハンドシェイクでセッションが確立した後のシーケンス番号と確認応答番号は、データ転送する際のパケットの長さで定まるため、処理内容がわかっている場合には将来の値を予測することが可能である。ここで、図4に示したレコードr4〜r7のパケットの変換例について説明する。
【0051】
なお、レコードr4は、通信開始後2.1秒後に試験端末Cから主系サーバAに送られた確認応答番号:5001のパケットを示している。また、レコードr6は、レコードr4のパケットが主系サーバAに送られた結果、通信開始後2.4秒後に試験端末Cから主系サーバAに送られた確認応答番号:7001のパケットを示している。
【0052】
図5は、パケット生成例を示す説明図である。図5では、(A)〜(D)の順で時系列に説明する。図5の(A)において、レコードr14は、図4のレコードr4のパケット(第1のパケット)から生成されたパケット(第2のパケット)のレコードである。生成部304では、予備系サーバBに変換後の第2のパケットを送るため、セッションIDを「abc」から「ijk」に書き換える。
【0053】
また、主系サーバAに送信されたレコードr4のパケットの宛先IPアドレスを、予備系サーバBのIPアドレス:20.20.20.80に書き換える。さらに、確認応答番号:5001にあらかじめ設定された変化量:6000を加算して、確認応答番号:11001に書き換える。取得時間:2.1秒はそのままで、第2の対象装置(サーバB)の試験開始時刻から第2のパケットを取得するまでの取得時間に設定される。生成後のレコードをr14とする。
【0054】
つぎに、図5の(B)において、レコードr16は、図4のレコードr6のパケット(第1のパケット)から生成されたパケット(第2のパケット)のレコードである。生成部304では、予備系サーバBに変換後の第2のパケットを送るため、セッションIDを「abc」から「ijk」に書き換える。
【0055】
また、主系サーバAに送信されたレコードr6のパケットの宛先IPアドレスを、予備系サーバBのIPアドレス:20.20.20.80に書き換える。さらに、確認応答番号:7001にあらかじめ設定された変化量:6000を加算して、確認応答番号:13001に書き換える。取得時間:2.4秒はそのままで、第2の対象装置(サーバB)の試験開始時刻から第2のパケットを取得するまでの取得時間に設定される。変換後のレコードをr16とする。
【0056】
図3において、送信部305は、第2の対象装置の試験開始から第1のパケットを取得するまでの取得時間を経過したときに、生成部304によって生成された第2のパケットを第2の対象装置に送信する機能を有する。たとえば、図5の(A)および(B)において、生成後の宛先となる予備系サーバBへ送信する第2のパケットのレコードr14,r16の取得時間にしたがって予備系サーバBに送信する。具体的には、レコードr14のパケットを試験開始から2.1秒後に予備系サーバBに送信し、レコードr16のパケットを試験開始から2.4秒後に予備系サーバBに送信する。
【0057】
レコードr14のパケットを予備系サーバBに送信すると、予備系サーバBは、その応答パケットを試験端末Cに送信する。取得部301は、この応答パケットをキャプチャし、(C)において、レコードr15としてDB310に格納する。このキャプチャされるまでの取得時間は、予備系サーバBの試験開始から3.5秒後であるため、レコードr15の時間項目には、「3.5」が格納される。また、算出部303によりRTTとして1.4秒(=3.5−2.1)も算出される。
【0058】
同様に、レコードr16のパケットを予備系サーバBに送信すると、予備系サーバBは、その応答パケットを試験端末Cに送信する。取得部301は、この応答パケットをキャプチャし、(D)において、レコードr17としてDB310に格納する。このキャプチャされるまでの取得時間は、予備系サーバBの試験開始から3.8秒後であるため、レコードr17の時間項目には、「3.8」が格納される。また、算出部303によりRTTとして1.4秒(=3.8−2.4)も算出される。
【0059】
図6は、第2のパケットの送信結果を示す説明図である。レコードr4のパケットがパケットS1A、レコードr5のパケットがパケットR1A、レコードr6のパケットがパケットS2A、レコードr7のパケットがパケットR2Aである。
【0060】
また、図5に示したレコードr14のパケットがパケットS1B、レコードr15のパケットがパケットR1B、レコードr16のパケットがパケットS2B、レコードr17のパケットがパケットR2Bである。
【0061】
図6に示したように、予備系サーバBへのパケットS2Bの送信が、予備系サーバBからのパケットR1Bの受信に先立って実行されることとなる。したがって、主系サーバAに送信されたパケットS1A,S2Aの時間間隔と、予備系サーバBに送信されたパケットS1B,S2Bの時間間隔が同一となる。
【0062】
このように、TCP/IPに基づく通信ではヘッダ情報を適切に書き換えることにより、遠隔にある予備系サーバBからの応答を待たずに主系サーバAからパケットを送出し続けることが可能である。これにより、予備系サーバBは主系サーバAと同一処理を同一のタイミングで実行することとなり、予備系サーバBに対し主系サーバAと同一の負荷試験を再現することができる。
【0063】
また、図3において、算出部303は時間間隔となるRTTを算出する。具体的には、たとえば、試験端末Cから第1の対象装置に送信された第1のパケットとその応答パケットとなる第1の対象装置から試験端末Cへの第3のパケットとをキャプチャする。算出部303では、第1の対象装置の試験開始から第3のパケットを取得するまでの取得時間から、第1の対象装置の試験開始から第1のパケットを取得するまでの取得時間を減算することで、第1の時間間隔を算出する。
【0064】
たとえば、図6において、主系サーバAの試験開始からパケットR1A(第3のパケット)を取得するまでの取得時間t=2.3から、主系サーバAの試験開始からパケットS1A(第1のパケット)を取得するまでの取得時間t=2.1を減算することで、RTTとして第1の時間間隔da=0.2が算出される。したがって、図4において、パケットR1Aのレコードr5のRTTには、「0.2」が格納されることとなる。
【0065】
また、パケットR2AとパケットS2Aとの間でも同様に、第1の時間間隔が算出される。具体的には、図6において、主系サーバAの試験開始からパケットR2A(第3のパケット)を取得するまでの取得時間t=2.6から、主系サーバAの試験開始からパケットS2A(第1のパケット)を取得するまでの取得時間t=2.4を減算することで、RTTとして第1の時間間隔da=0.2が算出される。したがって、図4において、パケットR2Aのレコードr7のRTTには、「0.2」が格納されることとなる。
【0066】
また、試験装置100から第2の対象装置に送信された第2のパケットとその応答パケットとなる第2の対象装置から試験端末Cへの第4のパケットとをキャプチャする。算出部303では、第2の対象装置の試験開始から第4のパケットを取得するまでの取得時間から、第2の対象装置の試験開始から第2のパケットを取得するまでの取得時間を減算することで、第2の時間間隔を算出する。
【0067】
たとえば、図6において、予備系サーバBの試験開始からパケットR1B(第4のパケット)を取得するまでの取得時間t=3.5から、予備系サーバBの試験開始からパケットS1B(第2のパケット)を取得するまでの取得時間t=2.1を減算することで、RTTとして第2の時間間隔db=1.4が算出される。したがって、図5において、パケットR1Bのレコードr15のRTTには、「1.4」が格納されることとなる。
【0068】
また、パケットR2BとパケットS2Bとの間でも同様に、第2の時間間隔が算出される。具体的には、図6において、予備系サーバBの試験開始からパケットR2B(第4のパケット)を取得するまでの取得時間t=3.8から、予備系サーバBの試験開始からパケットS2B(第2のパケット)を取得するまでの取得時間t=2.4を減算することで、RTTとして第2の時間間隔db=1.4が算出される。したがって、図5において、パケットR2Bのレコードr17のRTTには、「1.4」が格納されることとなる。
【0069】
実行部306は、第1および第2の対象装置の相対的な性能評価処理を実行する機能を有する。具体的には、たとえば、第1の時間間隔daと第2の時間間隔dbと第3の時間間隔dcに基づいて、第1および第2の対象装置の相対的な性能評価処理を実行する。ここで、第3の時間間隔dcとは、第1の対象装置から第2の対象装置にパケットを送信し、その結果、第2の対象装置からの応答パケットが第1の対象装置に受信されるまでのRTTである。第3の時間間隔dcは、あらかじめ測定しておき、DB310に格納しておく。これにより、実行部306が処理をおこなう際に、DB310から読み出すことができる。
【0070】
実行部306では、第1〜第3の時間間隔da〜dcを用いて、以下のように第1および第2の対象装置の相対的な性能評価処理を実行する。たとえば、第3の時間間隔dcから第2の時間間隔dbの減算結果と第1の時間間隔daとの大小を比較する。
【0071】
da>dc−dbの場合、第2の対象装置となる予備系サーバBの方が、第1の対象装置となる主系サーバAよりも性能が高いと判断される。
【0072】
da<dc−dbの場合、第1の対象装置となる主系サーバAの方が、第2の対象装置となる予備系サーバBよりも性能が高いと判断される。
【0073】
da=dc−dbの場合、第1の対象装置となる主系サーバAと第2の対象装置となる予備系サーバBとは同一性能と判断される。
【0074】
出力部307は、実行部306による実行結果を出力する機能を有する。具体的には、たとえば、実行部306による第1および第2の対象装置の相対的な性能評価の結果をディスプレイに表示したり、印刷出力したりする。
【0075】
(試験処理手順)
つぎに、実施の形態にかかる試験装置100の試験処理手順について、図7〜図9を用いて説明する。
【0076】
図7は、実施の形態にかかる試験装置100のパケットキャプチャ処理手順を示すフローチャートである。まず、試験装置100は、取得部301によりパケットをキャプチャするまで待ち受ける(ステップS701:No)。パケットがキャプチャされた場合(ステップS701:Yes)、試験装置100は、キャプチャされたパケットのヘッダに記述されている宛先IPアドレスをチェックする(ステップS702)。
【0077】
宛先IPアドレスが第1の対象装置である場合(ステップS702:第1の対象装置)、試験装置100は、キャプチャされたパケットが同期パケットであるか否かをチェックする(ステップS703)。同期パケットである場合(ステップS703:Yes)、試験装置100は、第1の対象装置の試験開始からの経過時間としてt=0を設定し(ステップS704)、計時を開始する(ステップS705)。そして、ステップS707に移行する。
【0078】
一方、ステップS703において同期パケットでないと判断された場合(ステップS703:No)、すでにステップS705による計時が開始されているため、試験装置100は、第1の対象装置の試験開始からパケット(第1のパケット)をキャプチャした時刻までの取得時間を検出する(ステップS706)。そして、ステップS707に移行する。
【0079】
ステップS707では、試験装置100は、キャプチャされたパケットのヘッダおよびペイロードを解析して(ステップS707)、取得時間、ヘッダ、ペイロードをDB310に記録する(ステップS708)。そして、ステップS713に移行する。
【0080】
また、ステップS702において、宛先IPアドレスが試験端末CのIPアドレスであると判断された場合(ステップS702:試験端末C)、すでにステップS705による計時が開始されているため、試験装置100は、第1の対象装置の試験開始からパケット(第3のパケット)をキャプチャした時刻までの取得時間を検出する(ステップS709)。
【0081】
そして、試験装置100は、キャプチャされたパケットのヘッダおよびペイロードを解析して(ステップS710)、第3のパケットの取得時間から対応する第1のパケットの取得時間を減算することでRTTを算出する(ステップS711)。このあと、試験装置100は、取得時間、RTT、ヘッダ、ペイロードをDB310に記録して(ステップS712)、ステップS713に移行する。
【0082】
ステップS713では、試験装置100は、パケット処理が終了したか否かを判断する(ステップS713)。たとえば、試験装置100は、今回キャプチャしたパケットがFINパケットであるか否かを判断する。パケット処理終了でない場合(ステップS713:No)、ステップS701に戻る。一方、パケット処理終了である場合(ステップS713:Yes)、パケットキャプチャ処理を終了する。これにより、第1および第3のパケットが、図4に示したDB310に格納されることとなる。
【0083】
図8は、実施の形態にかかる試験装置100によるパケット変換・送信処理手順を示すフローチャートである。まず、試験装置100は、DB310内で所定時間帯X内の未選択の第1のパケット(のレコード)があるか否かを判断する(ステップS801)。未選択の第1のパケットがある場合(ステップS801:Yes)、試験装置100は、未選択の第1のパケットを選択する(ステップS802)。そして、試験装置100は、選択された第1のパケットを生成部304により第2のパケットに生成してDB310に格納し(ステップS803)、ステップS801に戻る。
【0084】
一方、ステップS801において、未選択の第1のパケットがない場合(ステップS801:No)、試験装置100は、計時を開始し(ステップS804)、計時開始(第2の対象装置の試験開始)からの経過時間と同一の取得時間となる第2のパケットがあるか否かを判断する(ステップS805)。同一取得時間の第2のパケットがある場合(ステップS805:Yes)、試験装置100は、その該当する第2のパケットを第2の対象装置に送信して(ステップS806)、ステップS805に戻る。
【0085】
一方、ステップS805において、現在の経過時間と同一の取得時間となる第2のパケットがない場合(ステップS805:No)、試験装置100は、第4のパケットを取得(キャプチャ)したか否かを判断する(ステップS807)。取得していない場合(ステップS807:No)、ステップS805に戻る。
【0086】
一方、取得した場合(ステップS807:Yes)、試験装置100は、第2の対象装置の試験開始からパケット(第4のパケット)をキャプチャした時刻までの取得時間を検出する(ステップS808)。そして、ヘッダおよびペイロード解析をおこない(ステップS809)、試験装置100は、第4のパケットの取得時間から対応する第2のパケットの取得時間を減算することでRTTを算出する(ステップS810)。
【0087】
このあと、試験装置100は、取得時間、RTT、ヘッダ、ペイロードをDB310に記録して(ステップS811)、第4のパケットをすべて受信したか否かを判断する(ステップS812)。たとえば、対応する第2のパケットを用いてRTTが算出されているか否かで判断する。
【0088】
すべて受信されていない場合(ステップS812:No)、ステップS805に戻る。一方、すべて受信された場合(ステップS812:Yes)、パケット変換・送信処理を終了する。これにより、第2および第4のパケットが、図5に示したように、DB310に格納されることとなる。
【0089】
図9は、第1および第2の対象装置の相対的な性能評価処理手順を示すフローチャートである。まず、試験装置100は、第1の時間間隔daと第2の時間間隔dbを算出し(ステップS901)、第2の時間間隔dbから第3の時間間隔dcを減算する(ステップS902)。そして、試験装置100は、第1の時間間隔daと減算結果(db−dc)とを比較する(ステップS903)。
【0090】
da>db−dcの場合(ステップS903:>)、試験装置100は、第2の対象装置の方が高性能と判定し(ステップS904)、ステップS907に移行する。また、da<db−dcの場合(ステップS903:<)、試験装置100は、第1の対象装置の方が高性能と判定し(ステップS905)、ステップS907に移行する。
【0091】
さらに、da=db−dcの場合(ステップS903:=)、試験装置100は、第1の対象装置と第2の対象装置は同一性能と判定し(ステップS906)、ステップS907に移行する。ステップS907では、試験装置100は、ステップS904〜S906の判定結果を出力する(ステップS907)。これにより、第1の対象装置と第2の対象装置とのアクセス間隔を等しくすることができ、各対象装置の負荷を同等にする再現試験を実施することが可能である。
【0092】
また、第1の対象装置と第2の対象装置のRTTの違いを無視できるため、試験時間の短縮化を図ることができる。このように、対象装置の性能評価を迅速かつ高精度に評価することができる。
【0093】
また、上述した実施の形態では、第1の時間間隔daと第2の時間間隔dbと第3の時間間隔dcを用いて性能評価をおこなったが、第3の時間間隔dcを測定していない場合や測定できない場合、上述した性能評価をおこなうことができない。このような場合、第1の対象装置からの第3のパケットの試験装置100での第1の受信間隔det1と、第2の対象装置からの第4のパケットの試験装置100での第2の受信間隔det2とを算出することで、性能評価をおこなってもよい。
【0094】
具体的には、たとえば、図6を用いて説明すると、算出部303では、パケットR2Aの取得時刻とパケットR1Aの取得時刻との差を第1の受信間隔det1として算出する。同様に、パケットR2Bの取得時刻とパケットR1Bの取得時刻との差を第2の受信間隔det2として算出する。
【0095】
そして、実行部306では、第1の受信間隔det1および第2の受信間隔det2との大小を比較することで、以下のように第1および第2の対象装置の相対的な性能評価処理を実行する。
【0096】
det1>det2の場合、第2の対象装置となる予備系サーバBの方が、第1の対象装置となる主系サーバAよりも性能が高いと判断される。
【0097】
det1<det2の場合、第1の対象装置となる主系サーバAの方が、第2の対象装置となる予備系サーバBよりも性能が高いと判断される。
【0098】
det1=det2の場合、第1の対象装置となる主系サーバAと第2の対象装置となる予備系サーバBとは同一性能と判断される。このようにすることで、第3の時間間隔dcがない場合であっても性能評価をおこなうことができる。
【0099】
図10は、第1および第2の対象装置の相対的な性能評価処理手順を示すフローチャートである。まず、試験装置100は、第1の受信間隔det1を算出し(ステップS1001)、第2の受信間隔det2を算出する(ステップS1002)。そして、試験装置100は、第1の受信間隔det1と第2の受信間隔det2を比較する(ステップS1003)。
【0100】
det1>det2の場合(ステップS1003:>)、試験装置100は、第2の対象装置の方が高性能と判定し(ステップS1004)、ステップS1007に移行する。また、det1<det2の場合(ステップS1003:<)、試験装置100は、第1の対象装置の方が高性能と判定し(ステップS1005)、ステップS1007に移行する。
【0101】
さらに、det1=det2の場合(ステップS1003:=)、試験装置100は、第1の対象装置と第2の対象装置は同一性能と判定し(ステップS1006)、ステップS1007に移行する。ステップS1007では、試験装置100は、ステップS1004〜S1006の判定結果を出力する(ステップS1007)。これにより、第1の対象装置と第2の対象装置とのアクセス間隔を等しくすることができ、各対象装置の負荷を同等にする再現試験を実施することが可能である。
【0102】
また、第1の対象装置と第2の対象装置のRTTの違いを無視できるため、試験時間の短縮化を図ることができる。このように、対象装置の性能評価を迅速かつ高精度に評価することができる。
【0103】
以上説明したように、試験装置100、試験方法、および試験プログラムによれば、第1の対象装置へのパケットの宛先を第2の対象装置に換え、第1の対象装置への送信と同一時刻で第2の対象装置に送信することになる。したがって、第2の対象装置に対し、あたかも第1の対象装置の通信距離と同一距離であるかのように見せかけることで、同一負荷での再現試験をおこなうことが可能となる。
【0104】
また、第1の時間間隔daと第2の時間間隔dbと第3の時間間隔dcを用いて性能評価をおこなうことで、第1の対象装置と第2の対象装置とのアクセス間隔を等しくすることができ、各対象装置の負荷を同等にする再現試験を実施することが可能である。
【0105】
また、第1の対象装置と第2の対象装置のRTTの違いを無視できるため、試験時間の短縮化を図ることができる。このように、対象装置の性能評価を迅速かつ高精度に評価することができる。
【0106】
さらに、第1の受信間隔det1および第2の受信間隔det2を用いて性能評価をおこなうことで、第3の時間間隔dcがない場合であっても性能評価をおこなうことができる。
【0107】
なお、本実施の形態で説明した試験方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本試験プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本試験プログラムは、インターネット等のネットワークを介して配布してもよい。
【0108】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0109】
(付記1)コンピュータに、
第1の装置に対して送信された第1のパケット、第2のパケットを取得し、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信し、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する、
処理を実行させることを特徴とする試験プログラム。
【0110】
(付記2)前記第3のパケットの送信元及び前記第4のパケットの送信元を設定する処理を前記コンピュータに実行させることを特徴とする付記1に記載の試験プログラム。
【0111】
(付記3)前記第1のパケットおよび前記第2のパケットは、前記第1の装置に対して同じ装置から順に送信された連続するパケットに対応することを特徴とする付記1または2に記載の試験プログラム。
【0112】
(付記4)第1の基準時刻から前記第1のパケットの取得時刻まで経過した時間に対応する第1の時間と、該第1の基準時刻から前記第2のパケットの取得時刻まで経過した時間に対応する第2の時間とを取得する処理を前記コンピュータに実行させ、
前記第3のパケットは、第2の基準時刻から該第1の時間に対応する時間経過すると送信され、前記第4のパケットは、該第2の基準時刻から該第2の時間に対応する時間経過すると送信されることを特徴とする付記1〜3のいずれか一つに記載の試験プログラム。
【0113】
(付記5)前記第1のパケットを取得してから前記第3のパケットを取得するまでの第1の時間間隔と、前記第2のパケットを取得してから前記第4のパケットを取得するまでの第2の時間間隔と、前記第1の装置と前記第2の装置との間の送受信により計測された第3の時間間隔と、に基づいて、前記第1および第2の装置の相対的な性能評価処理を実行する処理、を前記コンピュータに実行させることを特徴とする付記1〜4のいずれか一つに記載の試験プログラム。
【0114】
(付記6)前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果よりも大きい場合、前記第2の対象装置が前記第1の対象装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記5に記載の試験プログラム。
【0115】
(付記7)前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果よりも小さい場合、前記第1の装置が前記第2の装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記5に記載の試験プログラム。
【0116】
(付記8)前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果と等しい場合、前記第1の装置と前記第2の装置とは同一性能であると判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記5に記載の試験プログラム。
【0117】
(付記9)前記第3のパケットの前記第1の対象装置からの第1の受信時間間隔を算出し、
前記第4のパケットの前記第2の対象装置からの第2の受信時間間隔を算出し、
前記第1および第2の受信時間間隔に基づいて、前記第1および第2の装置の相対的な性能評価処理を実行し、実行結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記1〜4のいずれか一つに記載の試験プログラム。
【0118】
(付記10)前記第1の受信時間間隔が、前記第2の受信時間間隔よりも大きい場合、前記第2の対象装置が前記第1の装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記9に記載の試験プログラム。
【0119】
(付記11)前記第1の受信時間間隔が、前記第2の受信時間間隔よりも小さい場合、前記第1の装置が前記第2の装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記9に記載の試験プログラム。
【0120】
(付記12)第1の装置に対して送信された第1のパケット、第2のパケットを取得する手段と、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信する手段と、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する手段と、
を備えることを特徴とする試験装置。
【0121】
(付記13)コンピュータが、
第1の装置に対して送信された第1のパケット、第2のパケットを取得し、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信し、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する、
処理を実行することを特徴とする試験方法。
【符号の説明】
【0122】
100 試験装置
301 取得部
302 検出部
303 算出部
304 生成部
305 送信部
306 実行部
307 出力部
310 DB
A 主系サーバ
B 予備系サーバ
C 試験端末
【技術分野】
【0001】
本発明は、対象装置の試験をおこなう試験プログラム、試験装置、および試験方法に関する。
【背景技術】
【0002】
従来から、クライアント−サーバ間の性能評価の技術が開示されているが(たとえば、下記特許文献1,2を参照)、システムの移行などをおこなう際、予備系サーバを迅速かつ正確に検証するための性能評価試験技術が求められている。このような性能評価技術については、従来、以下のように処理がおこなわれている。
【0003】
図11は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。図11では、主系サーバAおよび試験端末Cが大阪にあり、予備系サーバBは東京にあるものとする。主系サーバAは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバBは、主系サーバAから移行予定のコンピュータである。この場合、試験実施者は、同一パターン(パケットとその応答パケット)で試験をする際、試験端末Cが主系サーバAからのパケットをキャプチャし、キャプチャしたパケットを主系サーバAと同一のシーケンスパターンで予備系サーバBに流すこととなる。
【0004】
図12は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。図12では、主系サーバAは大阪にあり、予備系サーバBは東京にあり、試験端末Cは東京および大阪の両方にあるものとする。この場合、試験実施者は、大阪において試験端末Cと主系サーバAとの間でパケット通信をおこなうとともに、東京において、主系サーバAと同じ時間間隔で、試験端末Cと予備系サーバBとの間でパケット通信をおこなう。これにより、主系サーバAと予備系サーバBとの相対的な性能評価をおこなうこととなる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−8648号公報
【特許文献2】特開平9−62601号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、図11の場合、主系サーバAと予備系サーバBとが異なる場所にあるため、主系サーバAと予備系サーバBとでのRTT(Round Trip Time:往復遅延時間)の差(距離と正の相関)が主系サーバAおよび予備系サーバBの処理間隔(処理負荷)に影響する。すなわち、予備系サーバBのパケット送受信間隔が主系サーバAのパケット送受信間隔に比べ大きくなるため、同一負荷で性能評価ができず、性能評価の品質の低下を招くという問題があった。
【0007】
一方、図12の場合、同一負荷で試験するには、図12に示したように、試験実施者は主系サーバAに対しパケットシーケンスのキャプチャをおこない、予備系サーバBのある現地(東京)に赴く。そして、キャプチャデータを基に同じシーケンスでパケットを送出する。したがって、試験実施者の移動などによる労力が発生し、試験実施者の負担が増大するという問題があった。
【0008】
本発明は、上述した従来技術による問題点を解消するため、高品質な性能評価試験を効率的におこなうことができる試験プログラム、試験装置、および試験方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、本試験プログラム、試験装置、および試験方法は、パケットを取得し、取得されたパケットの取得時刻を検出し、前記パケットが第1の対象装置に送信された第1のパケットである場合、前記第1のパケットの宛先を前記第2の対象装置のアドレスに設定し、検出された前記第1のパケットの取得時刻を送信時刻に設定することにより、前記第1のパケットを前記第2の対象装置への第2のパケットに変換し、変換された第2のパケットの送信時刻に前記第2のパケットを前記第2の対象装置に送信することを要件とする。
【発明の効果】
【0010】
本試験プログラム、試験装置、および試験方法によれば、高品質な性能評価試験を効率的におこなうことができるという効果を奏する。
【図面の簡単な説明】
【0011】
【図1】本実施の形態における性能評価試験の一例を示す説明図である。
【図2】実施の形態で用いられるコンピュータのハードウェア構成を示すブロック図である。
【図3】試験装置の機能的構成を示すブロック図である。
【図4】DBの記憶内容の一例を示す説明図である。
【図5】パケット変換例を示す説明図である。
【図6】第2のパケットの送信結果を示す説明図である。
【図7】実施の形態にかかる試験装置のパケットキャプチャ処理手順を示すフローチャートである。
【図8】実施の形態にかかる試験装置によるパケット変換・送信処理手順を示すフローチャートである。
【図9】第1および第2の対象装置の相対的な性能評価処理手順を示すフローチャートである。
【図10】第1および第2の対象装置の相対的な性能評価処理手順を示すフローチャートである。
【図11】従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。
【図12】従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。
【発明を実施するための形態】
【0012】
以下に添付図面を参照して、この発明にかかる試験プログラム、試験装置、および試験方法の実施の形態を詳細に説明する。
【0013】
図1は、本実施の形態における性能評価試験の一例を示す説明図である。図1では、試験端末Cおよび試験を行う対象である第1の装置の例として挙げられる主系サーバAが大阪にあり、試験を行う対象である第2の装置の例として挙げられる予備系サーバBは東京にあるものとする。なお、サーバA、Bの配置位置は例であって、他の配置関係でもよい。主系サーバAは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバBは、主系サーバAから移行予定のコンピュータである。
【0014】
試験装置100は、試験端末Cと主系サーバAと予備系サーバBと通信可能に接続される。たとえば、試験装置100と試験端末Cと主系サーバAは、同一のネットワークNa内にあり、予備系サーバBが存在するネットワークNbと通信可能である。
【0015】
たとえば、試験端末Cが主系サーバAにパケットS1Aを送信することにより、主系サーバAは試験端末CにパケットR1Aを応答として送信する。つぎに、試験端末Cが主系サーバAにパケットS2Aを送信することにより、主系サーバAは試験端末Cに応答としてパケットR2Aを送信する。このとき、試験装置100は、パケットS1A,S2A,R1A,R2Aをキャプチャする。
【0016】
また、試験装置100は、キャプチャしたパケットS1A,S2Aの宛先を主系サーバAのアドレスから予備系サーバBのアドレスに書き換えて、パケットS1AをパケットS1B、パケットS2AをパケットS2Bとして生成する。そして、試験装置100は、生成されたパケットS1B,S2Bを上記と同一のシーケンス(時間間隔)で予備系サーバBに送信する。
【0017】
たとえば、試験装置100は、パケットS1A,S2Aの取得時刻の間の時間間隔Tdを得ておき、パケットS1Bの送信後、Td時間だけ経過すると、パケットS2Bを送信する。これにより、試験装置100は、生成されたパケットS1B,S2Bを上記と同一のシーケンス(時間間隔)で予備系サーバBに送信することができる。
【0018】
また、第1の基準時刻(たとえば、パケットS1Aの受信よりも前に設定されたある時刻(試験開始時等))からパケットS1Aの取得時刻までに経過した時間Td1と、パケットS1Bの取得時刻までに経過した時間Td2とを取得し、第2の基準時刻(予備系サーバBの試験開始時刻等)から時間Td1経過すると、パケットS1Bを送信し、時間Td2が経過するとパケットS2Bを送信する。これによっても、試験装置100は、生成されたパケットS1B,S2Bを上記と同一のシーケンス(時間間隔)で予備系サーバBに送信することができる。
【0019】
これにより、パケットS1B,S2Bを受信した予備系サーバBは、パケットR1B,R2Bを返すこととなる。なお、いずれにしても、パケットS1Bの応答である予備系サーバBからのパケットR1Bの受信を待たずに、パケットS2Bを送信することを許容する。また、パケットS1B,S2Bの送信元を当該試験装置100のアドレスとすることで、予備系サーバBからの応答パケットR1B、R2Bの送信先が試験装置100となるように設定することもできる。なお、送信元を変更せず、試験端末Cが応答を受信することもできる。
【0020】
すなわち、パケットS1A,S2Aの時間間隔daとパケットS1B,S2Bの時間間隔dbが同一となるため、主系サーバAでのパケットS1A,S2Aの処理間隔Daと予備系サーバBでのパケットS1B,S2Bの処理間隔Dbも同一となる。このように、設置場所の違いをパケットS1A,S2Aの変換で吸収することにより、主系サーバAおよび予備系サーバBは同様の負荷で性能評価試験をされることとなる。このあと、主系サーバAからのパケットR1A,R2Aと予備系サーバBからのパケットR1B,R2Bとを比較することで、主系サーバAと予備系サーバBとの相対的な性能評価を実行することができる。
【0021】
(コンピュータのハードウェア構成)
図2は、実施の形態で用いられるコンピュータ(試験端末C、試験装置100、主系サーバA、予備系サーバB)のハードウェア構成の例を示すブロック図である。図2において、コンピュータは、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
【0022】
ここで、CPU201は、コンピュータの全体の制御を司る。ROM202は、OS(Operating System)やアプリケーションといった各種プログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
【0023】
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
【0024】
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0025】
インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
【0026】
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0027】
スキャナ212は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【0028】
(試験装置100の機能的構成)
つぎに、試験装置100の機能的構成について説明する。図3は、試験装置100の機能的構成を示すブロック図である。試験装置100は、取得部301と検出部302と算出部303と生成部304と送信部305と実行部306と出力部307とデータベース(以下、「DB310」)310とを備えている。
【0029】
取得部301〜出力部307は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。また、DB310は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置により、その機能を実現する。
【0030】
取得部301は、パケットを取得する機能を有する。具体的には、たとえば、試験端末Cと主系サーバAとの間で通信されるパケットや予備系サーバBと試験端末Cとの間で通信されるパケットをキャプチャする。取得部301で取得されたパケットは、ヘッダ・ペイロード解析され、DB310に格納される。
【0031】
検出部302は、取得部301によって取得されたパケットの送信先の対象装置の試験開始から当該パケットを取得するまでの取得時間や、送信先の対象装置からの当該パケットの応答パケットを検出する機能を有する。具体的には、たとえば、送信先の対象装置の試験開始時刻を基準としてパケットを取得したときの経過時間を取得時間として検出する。なお、取得されたパケットがセッション開始を示す同期パケットである場合、開始時刻が設定されていないため、同期パケットの取得時間tをt=0、すなわち、送信先の対象装置の試験開始時刻に設定することとなる。検出部302で検出された取得時刻はDB310に格納される。また、送信先の対象装置の試験開始時刻は、あらかじめ試験端末C、試験装置100とで同一の開始時刻を設定しておけばよい。
【0032】
算出部303は、あるパケットがキャプチャされてからそのパケットに応答するパケットがキャプチャされるまでの時間間隔を算出する機能を有する。具体的には、あるパケットの取得時間からそのパケットに応答する応答パケットの取得時間との差の絶対値を時間間隔として算出する。算出部303の詳細については後述する。算出部303で算出された時間間隔は、RTTとしてDB310に格納される。
【0033】
DB310は、取得されたパケットに記述されている情報や、検出部302で検出された取得時間、算出部303で算出された時間間隔を記憶する機能を有する。
【0034】
図4は、DB310の記憶内容の一例を示す説明図である。図4において、DB310は、セッションID項目、時間情報項目、IP(Internet Protocol)ヘッダ情報項目、TCP(Transmission Control Protocol)ヘッダ情報項目、アプリヘッダ情報項目、ペイロード項目を有する。DB310には、パケットごとに各項目の値が格納される。セッションID項目には、セッションIDが格納される。同一セッションであれば同一セッションIDが格納される。
【0035】
時間情報項目は、時間項目とRTT項目とを有する。時間項目には送信先の対象装置の試験開始からパケットを取得するまでの取得時間が格納される。同一セッションIDの中で最初にキャプチャされたパケット(同期パケット)については、取得時間として基準時刻0が格納される。
【0036】
たとえば、レコードr1はセッションID:abcのレコードr1〜r7の中で最初にキャプチャされたパケットのレコードであるため、基準時刻t=0が格納される。レコードr8も同様に、セッションID:defのレコードr8〜r10の中で最初にキャプチャされたパケットのレコードであるため、基準時刻t=0が格納される。
【0037】
また、キャプチャされたパケットが主系サーバAまたは予備系サーバBからのパケットである場合、RTT項目にRTTも格納される。RTTは、パケットがキャプチャされてからその応答パケットがキャプチャされるまでの時間間隔である。RTTは、算出部303で算出される。
【0038】
IPヘッダ情報項目は、送信元IP項目と宛先IP項目とを有する。送信元IP項目には、キャプチャされたパケットのヘッダに記述されている送信元IPアドレスが格納される。また、宛先IP項目には、キャプチャされたパケットのヘッダに記述されている宛先IPアドレスが格納される。図4では、試験端末CのIPアドレスを「10.10.10.10」とし、主系サーバAのIPアドレスを「20.20.20.20」としている。したがって、1行目のレコードr1は、試験端末Cから主系サーバAへのパケットを示しており、2行目のレコードr2は、その応答パケットを示している。
【0039】
TCPヘッダ情報項目は、発信元ポート項目、宛先ポート項目、シーケンス番号項目、確認応答番号項目、各種フラグ(SYN(同期)/ACK(確認応答)/PSH(プッシュ)/FIN(通信終了)/RST(リセット要求))項目を有する。発信元ポート項目には、キャプチャされたパケットのヘッダに記述されている送信元ポート番号が格納される。宛先ポート番号項目には、キャプチャされたパケットのヘッダに記述されている宛先ポート番号が格納される。
【0040】
シーケンス番号項目には、キャプチャされたパケットのヘッダに記述されているシーケンス番号が格納される。シーケンス番号は、キャプチャされたパケットの送信元で与えられたランダムな値である。
【0041】
確認応答番号項目には、キャプチャされたパケットのヘッダに記述されている確認応答番号が格納される。確認応答番号は、受け取った側のコンピュータが受け取ったパケットのシーケンス番号に基づいて付与する値である。たとえば、受け取ったパケットのシーケンス番号に1加算した値を確認応答番号とする。
【0042】
フラグ項目には、パケットの種類(SYN/ACK/PSH/FIN/RST)を特定するフラグが格納される。たとえば、レコードr1のパケットは、SYNパケットである。
【0043】
アプリヘッダ情報項目には、HTTP(HyperText Transfer Protocol)やPOP(Post Office Protocol)3/IMAP(Internet Message Access Protocol)といった各アプリケーションに関するヘッダ情報が格納される。
【0044】
ペイロード項目には、キャプチャされたパケットのうちヘッダを除いたデータ本体となるペイロードが格納される。なお、パケットのペイロードは格納しても破棄してもどちらでもよい。
【0045】
また、TCP/IPに従った通信は、3ウェイハンドシェイクによるセッション確立、データ転送、セッション終了を実行する一連の処理からなる。3ウェイハンドシェイクでは、まず試験端末CがSYNパケット(シーケンス番号:試験端末C側の乱数、確認応答番号:0、SYNフラグ)をパケットとして主系サーバAに送る。
【0046】
つぎに、そのSYNパケットを受け取った主系サーバAがSYN/ACKパケット(シーケンス番号:主系サーバA側の乱数、確認応答番号:SYNパケットのシーケンス番号+1、SYNフラグ、ACKフラグ)を試験端末Cに送る。さらに、そのSYN/ACKパケットを受け取った試験端末CがACKパケット(シーケンス番号:主系サーバA側の確認応答番号、確認応答番号:SYN/ACKパケットのシーケンス番号、ACKフラグ)をパケットとして主系サーバAに送る。
【0047】
図4に示した例では、レコードr1〜r3のパケット群とレコードr8〜r10のパケット群が、3ウェイハンドシェイクを実行するパケット群である。
【0048】
生成部304は、パケットが第1の対象装置に送信された第1のパケットである場合、第1のパケットの情報のうち宛先を第2の対象装置のアドレスに書き換えた第2のパケットを生成する機能を有する。
【0049】
具体的には、たとえば、試験開始後X分後に過去X分間分の送信パケット情報を取得し
、宛先IPアドレス、宛先ポート番号、シーケンス番号、確認応答番号を書き換える。シーケンス番号および確認応答番号はセッションを確立する際に乱数を使用するため、事前にセッションの確立を実行することとなる。
【0050】
TCP/IPに従った通信では、3ウェイハンドシェイクでセッションが確立した後のシーケンス番号と確認応答番号は、データ転送する際のパケットの長さで定まるため、処理内容がわかっている場合には将来の値を予測することが可能である。ここで、図4に示したレコードr4〜r7のパケットの変換例について説明する。
【0051】
なお、レコードr4は、通信開始後2.1秒後に試験端末Cから主系サーバAに送られた確認応答番号:5001のパケットを示している。また、レコードr6は、レコードr4のパケットが主系サーバAに送られた結果、通信開始後2.4秒後に試験端末Cから主系サーバAに送られた確認応答番号:7001のパケットを示している。
【0052】
図5は、パケット生成例を示す説明図である。図5では、(A)〜(D)の順で時系列に説明する。図5の(A)において、レコードr14は、図4のレコードr4のパケット(第1のパケット)から生成されたパケット(第2のパケット)のレコードである。生成部304では、予備系サーバBに変換後の第2のパケットを送るため、セッションIDを「abc」から「ijk」に書き換える。
【0053】
また、主系サーバAに送信されたレコードr4のパケットの宛先IPアドレスを、予備系サーバBのIPアドレス:20.20.20.80に書き換える。さらに、確認応答番号:5001にあらかじめ設定された変化量:6000を加算して、確認応答番号:11001に書き換える。取得時間:2.1秒はそのままで、第2の対象装置(サーバB)の試験開始時刻から第2のパケットを取得するまでの取得時間に設定される。生成後のレコードをr14とする。
【0054】
つぎに、図5の(B)において、レコードr16は、図4のレコードr6のパケット(第1のパケット)から生成されたパケット(第2のパケット)のレコードである。生成部304では、予備系サーバBに変換後の第2のパケットを送るため、セッションIDを「abc」から「ijk」に書き換える。
【0055】
また、主系サーバAに送信されたレコードr6のパケットの宛先IPアドレスを、予備系サーバBのIPアドレス:20.20.20.80に書き換える。さらに、確認応答番号:7001にあらかじめ設定された変化量:6000を加算して、確認応答番号:13001に書き換える。取得時間:2.4秒はそのままで、第2の対象装置(サーバB)の試験開始時刻から第2のパケットを取得するまでの取得時間に設定される。変換後のレコードをr16とする。
【0056】
図3において、送信部305は、第2の対象装置の試験開始から第1のパケットを取得するまでの取得時間を経過したときに、生成部304によって生成された第2のパケットを第2の対象装置に送信する機能を有する。たとえば、図5の(A)および(B)において、生成後の宛先となる予備系サーバBへ送信する第2のパケットのレコードr14,r16の取得時間にしたがって予備系サーバBに送信する。具体的には、レコードr14のパケットを試験開始から2.1秒後に予備系サーバBに送信し、レコードr16のパケットを試験開始から2.4秒後に予備系サーバBに送信する。
【0057】
レコードr14のパケットを予備系サーバBに送信すると、予備系サーバBは、その応答パケットを試験端末Cに送信する。取得部301は、この応答パケットをキャプチャし、(C)において、レコードr15としてDB310に格納する。このキャプチャされるまでの取得時間は、予備系サーバBの試験開始から3.5秒後であるため、レコードr15の時間項目には、「3.5」が格納される。また、算出部303によりRTTとして1.4秒(=3.5−2.1)も算出される。
【0058】
同様に、レコードr16のパケットを予備系サーバBに送信すると、予備系サーバBは、その応答パケットを試験端末Cに送信する。取得部301は、この応答パケットをキャプチャし、(D)において、レコードr17としてDB310に格納する。このキャプチャされるまでの取得時間は、予備系サーバBの試験開始から3.8秒後であるため、レコードr17の時間項目には、「3.8」が格納される。また、算出部303によりRTTとして1.4秒(=3.8−2.4)も算出される。
【0059】
図6は、第2のパケットの送信結果を示す説明図である。レコードr4のパケットがパケットS1A、レコードr5のパケットがパケットR1A、レコードr6のパケットがパケットS2A、レコードr7のパケットがパケットR2Aである。
【0060】
また、図5に示したレコードr14のパケットがパケットS1B、レコードr15のパケットがパケットR1B、レコードr16のパケットがパケットS2B、レコードr17のパケットがパケットR2Bである。
【0061】
図6に示したように、予備系サーバBへのパケットS2Bの送信が、予備系サーバBからのパケットR1Bの受信に先立って実行されることとなる。したがって、主系サーバAに送信されたパケットS1A,S2Aの時間間隔と、予備系サーバBに送信されたパケットS1B,S2Bの時間間隔が同一となる。
【0062】
このように、TCP/IPに基づく通信ではヘッダ情報を適切に書き換えることにより、遠隔にある予備系サーバBからの応答を待たずに主系サーバAからパケットを送出し続けることが可能である。これにより、予備系サーバBは主系サーバAと同一処理を同一のタイミングで実行することとなり、予備系サーバBに対し主系サーバAと同一の負荷試験を再現することができる。
【0063】
また、図3において、算出部303は時間間隔となるRTTを算出する。具体的には、たとえば、試験端末Cから第1の対象装置に送信された第1のパケットとその応答パケットとなる第1の対象装置から試験端末Cへの第3のパケットとをキャプチャする。算出部303では、第1の対象装置の試験開始から第3のパケットを取得するまでの取得時間から、第1の対象装置の試験開始から第1のパケットを取得するまでの取得時間を減算することで、第1の時間間隔を算出する。
【0064】
たとえば、図6において、主系サーバAの試験開始からパケットR1A(第3のパケット)を取得するまでの取得時間t=2.3から、主系サーバAの試験開始からパケットS1A(第1のパケット)を取得するまでの取得時間t=2.1を減算することで、RTTとして第1の時間間隔da=0.2が算出される。したがって、図4において、パケットR1Aのレコードr5のRTTには、「0.2」が格納されることとなる。
【0065】
また、パケットR2AとパケットS2Aとの間でも同様に、第1の時間間隔が算出される。具体的には、図6において、主系サーバAの試験開始からパケットR2A(第3のパケット)を取得するまでの取得時間t=2.6から、主系サーバAの試験開始からパケットS2A(第1のパケット)を取得するまでの取得時間t=2.4を減算することで、RTTとして第1の時間間隔da=0.2が算出される。したがって、図4において、パケットR2Aのレコードr7のRTTには、「0.2」が格納されることとなる。
【0066】
また、試験装置100から第2の対象装置に送信された第2のパケットとその応答パケットとなる第2の対象装置から試験端末Cへの第4のパケットとをキャプチャする。算出部303では、第2の対象装置の試験開始から第4のパケットを取得するまでの取得時間から、第2の対象装置の試験開始から第2のパケットを取得するまでの取得時間を減算することで、第2の時間間隔を算出する。
【0067】
たとえば、図6において、予備系サーバBの試験開始からパケットR1B(第4のパケット)を取得するまでの取得時間t=3.5から、予備系サーバBの試験開始からパケットS1B(第2のパケット)を取得するまでの取得時間t=2.1を減算することで、RTTとして第2の時間間隔db=1.4が算出される。したがって、図5において、パケットR1Bのレコードr15のRTTには、「1.4」が格納されることとなる。
【0068】
また、パケットR2BとパケットS2Bとの間でも同様に、第2の時間間隔が算出される。具体的には、図6において、予備系サーバBの試験開始からパケットR2B(第4のパケット)を取得するまでの取得時間t=3.8から、予備系サーバBの試験開始からパケットS2B(第2のパケット)を取得するまでの取得時間t=2.4を減算することで、RTTとして第2の時間間隔db=1.4が算出される。したがって、図5において、パケットR2Bのレコードr17のRTTには、「1.4」が格納されることとなる。
【0069】
実行部306は、第1および第2の対象装置の相対的な性能評価処理を実行する機能を有する。具体的には、たとえば、第1の時間間隔daと第2の時間間隔dbと第3の時間間隔dcに基づいて、第1および第2の対象装置の相対的な性能評価処理を実行する。ここで、第3の時間間隔dcとは、第1の対象装置から第2の対象装置にパケットを送信し、その結果、第2の対象装置からの応答パケットが第1の対象装置に受信されるまでのRTTである。第3の時間間隔dcは、あらかじめ測定しておき、DB310に格納しておく。これにより、実行部306が処理をおこなう際に、DB310から読み出すことができる。
【0070】
実行部306では、第1〜第3の時間間隔da〜dcを用いて、以下のように第1および第2の対象装置の相対的な性能評価処理を実行する。たとえば、第3の時間間隔dcから第2の時間間隔dbの減算結果と第1の時間間隔daとの大小を比較する。
【0071】
da>dc−dbの場合、第2の対象装置となる予備系サーバBの方が、第1の対象装置となる主系サーバAよりも性能が高いと判断される。
【0072】
da<dc−dbの場合、第1の対象装置となる主系サーバAの方が、第2の対象装置となる予備系サーバBよりも性能が高いと判断される。
【0073】
da=dc−dbの場合、第1の対象装置となる主系サーバAと第2の対象装置となる予備系サーバBとは同一性能と判断される。
【0074】
出力部307は、実行部306による実行結果を出力する機能を有する。具体的には、たとえば、実行部306による第1および第2の対象装置の相対的な性能評価の結果をディスプレイに表示したり、印刷出力したりする。
【0075】
(試験処理手順)
つぎに、実施の形態にかかる試験装置100の試験処理手順について、図7〜図9を用いて説明する。
【0076】
図7は、実施の形態にかかる試験装置100のパケットキャプチャ処理手順を示すフローチャートである。まず、試験装置100は、取得部301によりパケットをキャプチャするまで待ち受ける(ステップS701:No)。パケットがキャプチャされた場合(ステップS701:Yes)、試験装置100は、キャプチャされたパケットのヘッダに記述されている宛先IPアドレスをチェックする(ステップS702)。
【0077】
宛先IPアドレスが第1の対象装置である場合(ステップS702:第1の対象装置)、試験装置100は、キャプチャされたパケットが同期パケットであるか否かをチェックする(ステップS703)。同期パケットである場合(ステップS703:Yes)、試験装置100は、第1の対象装置の試験開始からの経過時間としてt=0を設定し(ステップS704)、計時を開始する(ステップS705)。そして、ステップS707に移行する。
【0078】
一方、ステップS703において同期パケットでないと判断された場合(ステップS703:No)、すでにステップS705による計時が開始されているため、試験装置100は、第1の対象装置の試験開始からパケット(第1のパケット)をキャプチャした時刻までの取得時間を検出する(ステップS706)。そして、ステップS707に移行する。
【0079】
ステップS707では、試験装置100は、キャプチャされたパケットのヘッダおよびペイロードを解析して(ステップS707)、取得時間、ヘッダ、ペイロードをDB310に記録する(ステップS708)。そして、ステップS713に移行する。
【0080】
また、ステップS702において、宛先IPアドレスが試験端末CのIPアドレスであると判断された場合(ステップS702:試験端末C)、すでにステップS705による計時が開始されているため、試験装置100は、第1の対象装置の試験開始からパケット(第3のパケット)をキャプチャした時刻までの取得時間を検出する(ステップS709)。
【0081】
そして、試験装置100は、キャプチャされたパケットのヘッダおよびペイロードを解析して(ステップS710)、第3のパケットの取得時間から対応する第1のパケットの取得時間を減算することでRTTを算出する(ステップS711)。このあと、試験装置100は、取得時間、RTT、ヘッダ、ペイロードをDB310に記録して(ステップS712)、ステップS713に移行する。
【0082】
ステップS713では、試験装置100は、パケット処理が終了したか否かを判断する(ステップS713)。たとえば、試験装置100は、今回キャプチャしたパケットがFINパケットであるか否かを判断する。パケット処理終了でない場合(ステップS713:No)、ステップS701に戻る。一方、パケット処理終了である場合(ステップS713:Yes)、パケットキャプチャ処理を終了する。これにより、第1および第3のパケットが、図4に示したDB310に格納されることとなる。
【0083】
図8は、実施の形態にかかる試験装置100によるパケット変換・送信処理手順を示すフローチャートである。まず、試験装置100は、DB310内で所定時間帯X内の未選択の第1のパケット(のレコード)があるか否かを判断する(ステップS801)。未選択の第1のパケットがある場合(ステップS801:Yes)、試験装置100は、未選択の第1のパケットを選択する(ステップS802)。そして、試験装置100は、選択された第1のパケットを生成部304により第2のパケットに生成してDB310に格納し(ステップS803)、ステップS801に戻る。
【0084】
一方、ステップS801において、未選択の第1のパケットがない場合(ステップS801:No)、試験装置100は、計時を開始し(ステップS804)、計時開始(第2の対象装置の試験開始)からの経過時間と同一の取得時間となる第2のパケットがあるか否かを判断する(ステップS805)。同一取得時間の第2のパケットがある場合(ステップS805:Yes)、試験装置100は、その該当する第2のパケットを第2の対象装置に送信して(ステップS806)、ステップS805に戻る。
【0085】
一方、ステップS805において、現在の経過時間と同一の取得時間となる第2のパケットがない場合(ステップS805:No)、試験装置100は、第4のパケットを取得(キャプチャ)したか否かを判断する(ステップS807)。取得していない場合(ステップS807:No)、ステップS805に戻る。
【0086】
一方、取得した場合(ステップS807:Yes)、試験装置100は、第2の対象装置の試験開始からパケット(第4のパケット)をキャプチャした時刻までの取得時間を検出する(ステップS808)。そして、ヘッダおよびペイロード解析をおこない(ステップS809)、試験装置100は、第4のパケットの取得時間から対応する第2のパケットの取得時間を減算することでRTTを算出する(ステップS810)。
【0087】
このあと、試験装置100は、取得時間、RTT、ヘッダ、ペイロードをDB310に記録して(ステップS811)、第4のパケットをすべて受信したか否かを判断する(ステップS812)。たとえば、対応する第2のパケットを用いてRTTが算出されているか否かで判断する。
【0088】
すべて受信されていない場合(ステップS812:No)、ステップS805に戻る。一方、すべて受信された場合(ステップS812:Yes)、パケット変換・送信処理を終了する。これにより、第2および第4のパケットが、図5に示したように、DB310に格納されることとなる。
【0089】
図9は、第1および第2の対象装置の相対的な性能評価処理手順を示すフローチャートである。まず、試験装置100は、第1の時間間隔daと第2の時間間隔dbを算出し(ステップS901)、第2の時間間隔dbから第3の時間間隔dcを減算する(ステップS902)。そして、試験装置100は、第1の時間間隔daと減算結果(db−dc)とを比較する(ステップS903)。
【0090】
da>db−dcの場合(ステップS903:>)、試験装置100は、第2の対象装置の方が高性能と判定し(ステップS904)、ステップS907に移行する。また、da<db−dcの場合(ステップS903:<)、試験装置100は、第1の対象装置の方が高性能と判定し(ステップS905)、ステップS907に移行する。
【0091】
さらに、da=db−dcの場合(ステップS903:=)、試験装置100は、第1の対象装置と第2の対象装置は同一性能と判定し(ステップS906)、ステップS907に移行する。ステップS907では、試験装置100は、ステップS904〜S906の判定結果を出力する(ステップS907)。これにより、第1の対象装置と第2の対象装置とのアクセス間隔を等しくすることができ、各対象装置の負荷を同等にする再現試験を実施することが可能である。
【0092】
また、第1の対象装置と第2の対象装置のRTTの違いを無視できるため、試験時間の短縮化を図ることができる。このように、対象装置の性能評価を迅速かつ高精度に評価することができる。
【0093】
また、上述した実施の形態では、第1の時間間隔daと第2の時間間隔dbと第3の時間間隔dcを用いて性能評価をおこなったが、第3の時間間隔dcを測定していない場合や測定できない場合、上述した性能評価をおこなうことができない。このような場合、第1の対象装置からの第3のパケットの試験装置100での第1の受信間隔det1と、第2の対象装置からの第4のパケットの試験装置100での第2の受信間隔det2とを算出することで、性能評価をおこなってもよい。
【0094】
具体的には、たとえば、図6を用いて説明すると、算出部303では、パケットR2Aの取得時刻とパケットR1Aの取得時刻との差を第1の受信間隔det1として算出する。同様に、パケットR2Bの取得時刻とパケットR1Bの取得時刻との差を第2の受信間隔det2として算出する。
【0095】
そして、実行部306では、第1の受信間隔det1および第2の受信間隔det2との大小を比較することで、以下のように第1および第2の対象装置の相対的な性能評価処理を実行する。
【0096】
det1>det2の場合、第2の対象装置となる予備系サーバBの方が、第1の対象装置となる主系サーバAよりも性能が高いと判断される。
【0097】
det1<det2の場合、第1の対象装置となる主系サーバAの方が、第2の対象装置となる予備系サーバBよりも性能が高いと判断される。
【0098】
det1=det2の場合、第1の対象装置となる主系サーバAと第2の対象装置となる予備系サーバBとは同一性能と判断される。このようにすることで、第3の時間間隔dcがない場合であっても性能評価をおこなうことができる。
【0099】
図10は、第1および第2の対象装置の相対的な性能評価処理手順を示すフローチャートである。まず、試験装置100は、第1の受信間隔det1を算出し(ステップS1001)、第2の受信間隔det2を算出する(ステップS1002)。そして、試験装置100は、第1の受信間隔det1と第2の受信間隔det2を比較する(ステップS1003)。
【0100】
det1>det2の場合(ステップS1003:>)、試験装置100は、第2の対象装置の方が高性能と判定し(ステップS1004)、ステップS1007に移行する。また、det1<det2の場合(ステップS1003:<)、試験装置100は、第1の対象装置の方が高性能と判定し(ステップS1005)、ステップS1007に移行する。
【0101】
さらに、det1=det2の場合(ステップS1003:=)、試験装置100は、第1の対象装置と第2の対象装置は同一性能と判定し(ステップS1006)、ステップS1007に移行する。ステップS1007では、試験装置100は、ステップS1004〜S1006の判定結果を出力する(ステップS1007)。これにより、第1の対象装置と第2の対象装置とのアクセス間隔を等しくすることができ、各対象装置の負荷を同等にする再現試験を実施することが可能である。
【0102】
また、第1の対象装置と第2の対象装置のRTTの違いを無視できるため、試験時間の短縮化を図ることができる。このように、対象装置の性能評価を迅速かつ高精度に評価することができる。
【0103】
以上説明したように、試験装置100、試験方法、および試験プログラムによれば、第1の対象装置へのパケットの宛先を第2の対象装置に換え、第1の対象装置への送信と同一時刻で第2の対象装置に送信することになる。したがって、第2の対象装置に対し、あたかも第1の対象装置の通信距離と同一距離であるかのように見せかけることで、同一負荷での再現試験をおこなうことが可能となる。
【0104】
また、第1の時間間隔daと第2の時間間隔dbと第3の時間間隔dcを用いて性能評価をおこなうことで、第1の対象装置と第2の対象装置とのアクセス間隔を等しくすることができ、各対象装置の負荷を同等にする再現試験を実施することが可能である。
【0105】
また、第1の対象装置と第2の対象装置のRTTの違いを無視できるため、試験時間の短縮化を図ることができる。このように、対象装置の性能評価を迅速かつ高精度に評価することができる。
【0106】
さらに、第1の受信間隔det1および第2の受信間隔det2を用いて性能評価をおこなうことで、第3の時間間隔dcがない場合であっても性能評価をおこなうことができる。
【0107】
なお、本実施の形態で説明した試験方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本試験プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本試験プログラムは、インターネット等のネットワークを介して配布してもよい。
【0108】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0109】
(付記1)コンピュータに、
第1の装置に対して送信された第1のパケット、第2のパケットを取得し、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信し、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する、
処理を実行させることを特徴とする試験プログラム。
【0110】
(付記2)前記第3のパケットの送信元及び前記第4のパケットの送信元を設定する処理を前記コンピュータに実行させることを特徴とする付記1に記載の試験プログラム。
【0111】
(付記3)前記第1のパケットおよび前記第2のパケットは、前記第1の装置に対して同じ装置から順に送信された連続するパケットに対応することを特徴とする付記1または2に記載の試験プログラム。
【0112】
(付記4)第1の基準時刻から前記第1のパケットの取得時刻まで経過した時間に対応する第1の時間と、該第1の基準時刻から前記第2のパケットの取得時刻まで経過した時間に対応する第2の時間とを取得する処理を前記コンピュータに実行させ、
前記第3のパケットは、第2の基準時刻から該第1の時間に対応する時間経過すると送信され、前記第4のパケットは、該第2の基準時刻から該第2の時間に対応する時間経過すると送信されることを特徴とする付記1〜3のいずれか一つに記載の試験プログラム。
【0113】
(付記5)前記第1のパケットを取得してから前記第3のパケットを取得するまでの第1の時間間隔と、前記第2のパケットを取得してから前記第4のパケットを取得するまでの第2の時間間隔と、前記第1の装置と前記第2の装置との間の送受信により計測された第3の時間間隔と、に基づいて、前記第1および第2の装置の相対的な性能評価処理を実行する処理、を前記コンピュータに実行させることを特徴とする付記1〜4のいずれか一つに記載の試験プログラム。
【0114】
(付記6)前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果よりも大きい場合、前記第2の対象装置が前記第1の対象装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記5に記載の試験プログラム。
【0115】
(付記7)前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果よりも小さい場合、前記第1の装置が前記第2の装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記5に記載の試験プログラム。
【0116】
(付記8)前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果と等しい場合、前記第1の装置と前記第2の装置とは同一性能であると判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記5に記載の試験プログラム。
【0117】
(付記9)前記第3のパケットの前記第1の対象装置からの第1の受信時間間隔を算出し、
前記第4のパケットの前記第2の対象装置からの第2の受信時間間隔を算出し、
前記第1および第2の受信時間間隔に基づいて、前記第1および第2の装置の相対的な性能評価処理を実行し、実行結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記1〜4のいずれか一つに記載の試験プログラム。
【0118】
(付記10)前記第1の受信時間間隔が、前記第2の受信時間間隔よりも大きい場合、前記第2の対象装置が前記第1の装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記9に記載の試験プログラム。
【0119】
(付記11)前記第1の受信時間間隔が、前記第2の受信時間間隔よりも小さい場合、前記第1の装置が前記第2の装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする付記9に記載の試験プログラム。
【0120】
(付記12)第1の装置に対して送信された第1のパケット、第2のパケットを取得する手段と、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信する手段と、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する手段と、
を備えることを特徴とする試験装置。
【0121】
(付記13)コンピュータが、
第1の装置に対して送信された第1のパケット、第2のパケットを取得し、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信し、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する、
処理を実行することを特徴とする試験方法。
【符号の説明】
【0122】
100 試験装置
301 取得部
302 検出部
303 算出部
304 生成部
305 送信部
306 実行部
307 出力部
310 DB
A 主系サーバ
B 予備系サーバ
C 試験端末
【特許請求の範囲】
【請求項1】
コンピュータに、
第1の装置に対して送信された第1のパケット、第2のパケットを取得し、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信し、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する、
処理を実行させることを特徴とする試験プログラム。
【請求項2】
前記第3のパケットの送信元及び前記第4のパケットの送信元を設定する処理を前記コンピュータに実行させることを特徴とする請求項1に記載の試験プログラム。
【請求項3】
前記第1のパケットおよび前記第2のパケットは、前記第1の装置に対して同じ装置から順に送信された連続するパケットに対応することを特徴とする請求項1または2に記載の試験プログラム。
【請求項4】
第1の基準時刻から前記第1のパケットの取得時刻まで経過した時間に対応する第1の時間と、該第1の基準時刻から前記第2のパケットの取得時刻まで経過した時間に対応する第2の時間とを取得する処理を前記コンピュータに実行させ、
前記第3のパケットは、第2の基準時刻から該第1の時間に対応する時間経過すると送信され、前記第4のパケットは、該第2の基準時刻から該第2の時間に対応する時間経過すると送信されることを特徴とする請求項1〜3のいずれか一つに記載の試験プログラム。
【請求項5】
前記第1のパケットを取得してから前記第3のパケットを取得するまでの第1の時間間隔と、前記第2のパケットを取得してから前記第4のパケットを取得するまでの第2の時間間隔と、前記第1の装置と前記第2の装置との間の送受信により計測された第3の時間間隔と、に基づいて、前記第1および第2の装置の相対的な性能評価処理を実行する処理、を前記コンピュータに実行させることを特徴とする請求項1〜4のいずれか一つに記載の試験プログラム。
【請求項6】
前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果よりも大きい場合、前記第2の対象装置が前記第1の対象装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする請求項5に記載の試験プログラム。
【請求項7】
前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果よりも小さい場合、前記第1の装置が前記第2の装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする請求項5に記載の試験プログラム。
【請求項8】
前記第3のパケットの前記第1の対象装置からの第1の受信時間間隔を算出し、
前記第4のパケットの前記第2の対象装置からの第2の受信時間間隔を算出し、
前記第1および第2の受信時間間隔に基づいて、前記第1および第2の装置の相対的な性能評価処理を実行し、実行結果を出力する処理を、前記コンピュータに実行させることを特徴とする請求項1〜4のいずれか一つに記載の試験プログラム。
【請求項9】
第1の装置に対して送信された第1のパケット、第2のパケットを取得する手段と、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信する手段と、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する手段と、
を備えることを特徴とする試験装置。
【請求項10】
コンピュータが、
第1の装置に対して送信された第1のパケット、第2のパケットを取得し、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信し、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する、
処理を実行することを特徴とする試験方法。
【請求項1】
コンピュータに、
第1の装置に対して送信された第1のパケット、第2のパケットを取得し、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信し、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する、
処理を実行させることを特徴とする試験プログラム。
【請求項2】
前記第3のパケットの送信元及び前記第4のパケットの送信元を設定する処理を前記コンピュータに実行させることを特徴とする請求項1に記載の試験プログラム。
【請求項3】
前記第1のパケットおよび前記第2のパケットは、前記第1の装置に対して同じ装置から順に送信された連続するパケットに対応することを特徴とする請求項1または2に記載の試験プログラム。
【請求項4】
第1の基準時刻から前記第1のパケットの取得時刻まで経過した時間に対応する第1の時間と、該第1の基準時刻から前記第2のパケットの取得時刻まで経過した時間に対応する第2の時間とを取得する処理を前記コンピュータに実行させ、
前記第3のパケットは、第2の基準時刻から該第1の時間に対応する時間経過すると送信され、前記第4のパケットは、該第2の基準時刻から該第2の時間に対応する時間経過すると送信されることを特徴とする請求項1〜3のいずれか一つに記載の試験プログラム。
【請求項5】
前記第1のパケットを取得してから前記第3のパケットを取得するまでの第1の時間間隔と、前記第2のパケットを取得してから前記第4のパケットを取得するまでの第2の時間間隔と、前記第1の装置と前記第2の装置との間の送受信により計測された第3の時間間隔と、に基づいて、前記第1および第2の装置の相対的な性能評価処理を実行する処理、を前記コンピュータに実行させることを特徴とする請求項1〜4のいずれか一つに記載の試験プログラム。
【請求項6】
前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果よりも大きい場合、前記第2の対象装置が前記第1の対象装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする請求項5に記載の試験プログラム。
【請求項7】
前記第1の時間間隔が、前記第3の時間間隔から前記第2の時間間隔を減算した減算結果よりも小さい場合、前記第1の装置が前記第2の装置よりも性能が高いと判定し、判定結果を出力する処理を、前記コンピュータに実行させることを特徴とする請求項5に記載の試験プログラム。
【請求項8】
前記第3のパケットの前記第1の対象装置からの第1の受信時間間隔を算出し、
前記第4のパケットの前記第2の対象装置からの第2の受信時間間隔を算出し、
前記第1および第2の受信時間間隔に基づいて、前記第1および第2の装置の相対的な性能評価処理を実行し、実行結果を出力する処理を、前記コンピュータに実行させることを特徴とする請求項1〜4のいずれか一つに記載の試験プログラム。
【請求項9】
第1の装置に対して送信された第1のパケット、第2のパケットを取得する手段と、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信する手段と、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する手段と、
を備えることを特徴とする試験装置。
【請求項10】
コンピュータが、
第1の装置に対して送信された第1のパケット、第2のパケットを取得し、
取得した該第1のパケットに基づいて、該第1のパケットの宛先を第2の装置に設定した第3のパケットを送信し、
該第3のパケットの送信から、前記第1のパケットの取得と前記第2のパケットの取得の間の時間間隔分の時間経過すると、取得した前記第2のパケットに基づいて、前記第2のパケットの宛先を前記第2の装置に設定した第4のパケットを送信する、
処理を実行することを特徴とする試験方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−199680(P2011−199680A)
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願番号】特願2010−65195(P2010−65195)
【出願日】平成22年3月19日(2010.3.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願日】平成22年3月19日(2010.3.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]