(57)【要約】  サーバシステムの性能を試験するためのシステム性能試験方法は、（Ａ）サーバシステムに対して、複数種類のリクエストシーケンスを指定された発行比率で発行するステップと、（Ｂ）複数種類のリクエストシーケンスの処理中にサーバシステムの性能を計測するステップと、を含む。複数種類のリクエストシーケンスの各々は、サーバシステムに対する一連のリクエストから構成される。
2009130967.tif 000002
【特許請求の範囲】
【請求項１】
サーバシステムの性能を試験するためのシステム性能試験方法であって、
前記サーバシステムに対して、複数種類のリクエストシーケンスを指定された発行比率で発行するステップと、
ここで、前記複数種類のリクエストシーケンスの各々は、前記サーバシステムに対する一連のリクエストから構成され、
前記複数種類のリクエストシーケンスの処理中に前記サーバシステムの性能を計測するステップと
を含む
システム性能試験方法。
【請求項２】
請求の範囲１に記載のシステム性能試験方法であって、
前記発行比率を複数のパターン間で変化させながら、前記複数種類のリクエストシーケンスを発行するステップと前記サーバシステムの性能を計測するステップを実行するステップを更に含む
システム性能試験方法。
【請求項３】
請求の範囲２に記載のシステム性能試験方法であって、
前記複数のパターンの前記発行比率のそれぞれと前記計測された性能との対応関係を示す性能レポートデータを作成するステップを更に含む
システム性能試験方法。
【請求項４】
請求の範囲３に記載のシステム性能試験方法であって、
前記作成された性能レポートデータを表示装置に表示するステップを更に含む
システム性能試験方法。
【請求項５】
請求の範囲１乃至４のいずれか一項に記載のシステム性能試験方法であって、
前記性能は、前記サーバシステムを構成するサーバのＣＰＵ使用率及びスループットを含む
システム性能試験方法。
【請求項６】
請求の範囲１乃至５のいずれか一項に記載のシステム性能試験方法であって、
前記複数種類のリクエストシーケンスを発行するステップは、所定の停止条件が満たされるまで実行される
システム性能試験方法。
【請求項７】
請求の範囲６に記載のシステム性能試験方法であって、
前記複数種類のリクエストシーケンスを発行するステップは、
前記複数種類のリクエストシーケンスが前記発行比率で選択されるように、前記複数種類のリクエストシーケンスを１つずつ選択するステップと、
前記選択されたリクエストシーケンスを前記サーバシステムに対して発行するステップと、
前記所定の停止条件が満たされるまで、前記複数種類のリクエストシーケンスを１つずつ選択するステップと前記選択されたリクエストシーケンスを発行するステップを繰り返し実行するステップと
を含む
システム性能試験方法。
【請求項８】
請求の範囲７に記載のシステム性能試験方法であって、
前記複数種類のリクエストシーケンスは第１〜第ｎリクエストシーケンスを含み、ｎは２以上の整数であり、
前記第１〜第ｎリクエストシーケンス間の前記発行比率はＸ１：Ｘ２：・・・：Ｘｎであり、Ｘ１〜Ｘｎは整数であり、
第ｉリクエストシーケンスはＸｉ個の番号に対応付けられ（ｉ＝１〜ｎ）、
前記複数種類のリクエストシーケンスを１つずつ選択するステップは、
前記複数種類のリクエストシーケンスのそれぞれに対応付けられた番号を少なくとも含む複数の番号をランダムに発生させるステップと、
前記複数種類のリクエストシーケンスの中から前記発生した番号に対応するリクエストシーケンスを選択するステップと
を含む
システム性能試験方法。
【請求項９】
サーバシステムの性能を試験する性能試験処理をコンピュータに実行させるシステム性能試験プログラムであって、
前記性能試験処理は、
前記サーバシステムに対して、複数種類のリクエストシーケンスを指定された発行比率で発行するステップと、
ここで、前記複数種類のリクエストシーケンスの各々は、前記サーバシステムに対する一連のリクエストから構成され、
前記複数種類のリクエストシーケンスの処理中に前記サーバシステムの性能を計測するステップと
を含む
システム性能試験プログラム。
【請求項１０】
サーバシステムの性能を試験するためのシステム性能試験装置であって、
前記サーバシステムに対して、複数種類のリクエストシーケンスを指定された発行比率で発行する実行モジュールと、
ここで、前記複数種類のリクエストシーケンスの各々は、前記サーバシステムに対する一連のリクエストから構成され、
前記複数種類のリクエストシーケンスの処理中に前記サーバシステムの性能を計測する性能評価モジュールと
を備える
システム性能試験装置。
【請求項１１】
請求の範囲１０に記載のシステム性能試験装置であって、
更に、リクエスト発行プログラムを生成するリクエスト発行プログラム生成モジュールを備え、
前記実行モジュールは、前記生成されたリクエスト発行プログラムを実行することによって、前記複数種類のリクエストシーケンスを前記発行比率で発行する
システム性能試験装置。
【請求項１２】
請求の範囲１１に記載のシステム性能試験装置であって、
前記複数種類のリクエストシーケンスは第１〜第ｎリクエストシーケンスを含み、ｎは２以上の整数であり、
前記第１〜第ｎリクエストシーケンス間の前記発行比率はＸ１：Ｘ２：・・・：Ｘｎであり、Ｘ１〜Ｘｎは整数であり、
第ｉリクエストシーケンスはＸｉ個の番号に対応付けられ（ｉ＝１〜ｎ）、
前記リクエスト発行プログラムは、
前記複数種類のリクエストシーケンスのそれぞれに対応付けられた番号を少なくとも含む複数の番号をランダムに発生させる乱数発生部と、
前記複数種類のリクエストシーケンスの中から前記発生した番号に対応するリクエストシーケンスを選択し、前記選択されたリクエストシーケンスを前記サーバシステムに対して発行するリクエスト選択発行部と、
所定の停止条件が満たされると処理を停止させるループ部と
を含む
システム性能試験装置。
【請求項１３】
請求の範囲１２に記載のシステム性能試験装置であって、
前記リクエスト発行プログラム生成モジュールは、
前記所定の停止条件を示す停止条件データに基づいて前記ループ部を生成する第１モジュールと、
前記発行比率を示す発行比率データに基づいて前記乱数発生部を生成する第２モジュールと、
前記発行比率データと前記複数種類のリクエストシーケンスに基づいて、第ｉリクエストシーケンスをＸｉ個の番号に対応付けることによって、前記リクエスト選択発行部を生成する第３モジュールと
を含む
システム性能試験装置。
【請求項１４】
請求の範囲１３に記載のシステム性能試験装置であって、
前記発行比率データは、複数のパターンの前記発行比率を示し、
前記リクエスト発行プログラム生成モジュールは、前記複数のパターン毎に前記リクエスト発行プログラムを生成する
システム性能試験装置。
【請求項１５】
請求の範囲１４に記載のシステム性能試験装置であって、
前記性能評価モジュールは、前記複数のパターンの前記発行比率のそれぞれと前記計測された性能との対応関係を示す性能レポートデータを作成する
システム性能試験装置。
【請求項１６】
サーバシステムに対して、複数種類のリクエストシーケンスを指定された発行比率で発行するステップと、
ここで、前記複数種類のリクエストシーケンスの各々は、前記サーバシステムに対する一連のリクエストから構成され、
所定の停止条件が満たされるまで、前記複数種類のリクエストシーケンスを発行するステップを実行するステップと
をコンピュータに実行させる
リクエスト発行プログラム。
【請求項１７】
請求の範囲１６に記載のリクエスト発行プログラムであって、
前記複数種類のリクエストシーケンスは第１〜第ｎリクエストシーケンスを含み、ｎは２以上の整数であり、
前記第１〜第ｎリクエストシーケンス間の前記発行比率はＸ１：Ｘ２：・・・：Ｘｎであり、Ｘ１〜Ｘｎは整数であり、
第ｉリクエストシーケンスはＸｉ個の番号に対応付けられ（ｉ＝１〜ｎ）、
前記複数種類のリクエストシーケンスを発行するステップは、
前記複数種類のリクエストシーケンスのそれぞれに対応付けられた番号を少なくとも含む複数の番号をランダムに発生させるステップと、
前記複数種類のリクエストシーケンスの中から前記発生した番号に対応するリクエストシーケンスを選択するステップと、
前記選択されたリクエストシーケンスを前記サーバシステムに対して発行するステップと
を含む
リクエスト発行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステムの性能を試験するための技術に関する。特に、本発明は、現実に即した負荷を印加することによってサーバシステムの性能を試験する技術に関する。
【背景技術】
【０００２】
サーバシステムは、クライアントからリクエストを受け取り、そのリクエストを処理し、処理結果をレスポンスとしてクライアントに返す。このようなサーバシステムの代表的なものが、ウェブサーバシステムである。ユーザは、クライアント端末のウェブブラウザを操作して、様々なアクションを実行する。クライアント端末は、ＵＲＬで指定されたウェブサーバに、ユーザのアクションに応じたリクエストを送信する。ウェブサーバはそのリクエストを処理し、処理結果をクライアント端末に返す。クライアント端末は、ウェブブラウザを通して、その処理結果をユーザに通知する。クライアントからのリクエストを短時間に処理するこのようなウェブサーバシステムは、一般に「トランザクションシステム」とも呼ばれている。【０００３】
一般的に、ウェブサーバの性能試験では、試験対象となるウェブサーバに接続されたサーバ試験装置が用いられる。サーバ試験装置は、試験対象のウェブサーバに対して仮想的なリクエスト（テストデータ）を送信することによって、当該ウェブサーバにアクセス負荷を印加する。そして、サーバ試験装置は、ウェブサーバの状態を観察することによって、ウェブサーバの性能を評価する。このような性能試験に関連する技術として、次のものが知られている。【０００４】
特開２００２−７２３２号公報には、多数のユーザ・エージェント（ウェブブラウザ）からの大量のＨＴＴＰリクエストがウェブサーバに同時並行して送信される場合を想定した性能試験方法が開示されている。サーバ試験装置は、多数のユーザ・エージェントを擬装した大量のＨＴＴＰリクエストを、試験対象のウェブサーバに同時並行的に送信する。そして、サーバ試験装置は、試験対象サーバからのＨＴＴＰレスポンスを個別に認識し、各ＨＴＴＰリクエストで指定されたオブジェクトが各レスポンス中に誤りなく含まれているか否かを判別する。また、サーバ試験装置は、ＨＴＴＰリクエストに含まれるパラメータを変化させたり、ＨＴＴＰリクエストの出力頻度を変化させたりする。これにより、テスト条件を可変に設定することが可能となる。【０００５】
特開２００７−２６４９６７号公報には、シナリオ作成プログラムが開示されている。シナリオは、ウェブサーバ内のページデータをリクエストする順番を定義しており、サーバ試験装置によって実現される複数の仮想ウェブクライアントに与えられる。複数の仮想ウェブクライアントは、与えられたシナリオ通りにリクエストメッセージの送信とレスポンスメッセージの受信を行う。シナリオ作成プログラムは、各仮想ウェブクライアントがリクエストメッセージの送信とレスポンスメッセージの受信を適切に行えるようなシナリオを作成する。例えば、シナリオ作成プログラムは、ウェブサーバがタイムアウトの判定を下し、仮想ウェブクライアントが適正なレスポンスメッセージを得られなくなる状況を防止するように、シナリオを作成する。【０００６】
特開２００３−１３１９０７号公報には、ウェブシステムの性能評価方法が開示されている。性能評価すべきウェブシステムに接続される複数のクライアントが仮想的に実現される。当該ウェブシステムに負荷が課され、ボトルネックを含むウェブサーバの性能に関する情報が測定される。そして、その情報及びボトルネック回避に関する情報を含む評価結果が出力される。【０００７】
特開２００３−１７３２７７号公報には、サーバシステムの性能測定装置が開示されている。その性能測定装置は、異なる複数の測定条件を同時に入力できるような条件入力画面を備えている。そして、性能測定装置は、異なる複数の測定条件でのサーバシステムの性能試験を自動的に連続して実行する。【０００８】
特開２００５−３３２１３９号公報には、ウェブサーバに対するテストデータの作成を支援する方法が開示されている。データ送受信部は、入力装置から受け取ったＵＭＬを基に、ウェブサーバにリクエストデータを送信する。また、データ送受信部は、ウェブサーバから受信したレスポンスデータをＨＴＭＬ登録部に渡す。ＨＴＭＬ登録部は、レスポンスデータに含まれるＨＴＭＬデータを抽出し、シナリオデータに記録する。可変データ編集処理部は、シナリオデータを読み取り、ＨＴＭＬデータに係る画面とフォームに対応するリストとを表示装置に表示させる。
【発明の開示】
【０００９】
本願発明者は、次の点に着目した。サーバシステムの性能試験では、なるべく現実に即した負荷を当該サーバシステムに印加することが望ましい。例えばウェブサーバシステムにおいて、ユーザがショッピングサイトにアクセスする場合を考える。ユーザが商品を閲覧するだけの場合と、ユーザが所望の商品を選択し購入する場合とでは、ユーザの行動パターンは全く異なる。性能試験において現実に即した負荷をサーバシステムにかけるためには、そのような様々な行動パターンをも考慮することが重要であると考えられる。しかしながら、既存の性能試験方法では、ユーザの様々な行動パターンは十分考慮されていなかった。
【００１０】
本発明の１つの目的は、現実に即した負荷をサーバシステムに印加することによって当該サーバシステムの性能試験を実施することができる技術を提供することにある。
【００１１】
本発明の第１の観点において、サーバシステムの性能を試験するためのシステム性能試験方法が提供される。そのシステム性能試験方法は、（Ａ）サーバシステムに対して、複数種類のリクエストシーケンスを指定された発行比率で発行するステップと、（Ｂ）複数種類のリクエストシーケンスの処理中にサーバシステムの性能を計測するステップと、を含む。複数種類のリクエストシーケンスの各々は、サーバシステムに対する一連のリクエストから構成される。
【００１２】
本発明の第２の観点において、サーバシステムの性能を試験する性能試験処理をコンピュータに実行させるシステム性能試験プログラムが提供される。性能試験処理は、（Ａ）サーバシステムに対して、複数種類のリクエストシーケンスを指定された発行比率で発行するステップと、（Ｂ）複数種類のリクエストシーケンスの処理中にサーバシステムの性能を計測するステップと、を含む。
【００１３】
本発明の第３の観点において、サーバシステムの性能を試験するためのシステム性能試験装置が提供される。そのシステム性能試験装置は、サーバシステムに対して複数種類のリクエストシーケンスを指定された発行比率で発行する実行モジュールと、複数種類のリクエストシーケンスの処理中にサーバシステムの性能を計測する性能評価モジュールと、を備える。
【００１４】
本発明の第４の観点において、リクエスト発行プログラムが提供される。リクエスト発行プログラムは、（ａ）サーバシステムに対して、複数種類のリクエストシーケンスを指定された発行比率で発行するステップと、（ｂ）所定の停止条件が満たされるまで（ａ）ステップを実行するステップと、をコンピュータに実行させる。複数種類のリクエストシーケンスの各々は、サーバシステムに対する一連のリクエストから構成される。
【００１５】
本発明によれば、現実に即した負荷をサーバシステムに印加することによって、当該サーバシステムの性能試験を実施することが可能となる。
【図面の簡単な説明】
【００１６】
上記及び他の目的、長所、特徴は、次の図面と共に説明される本発明の実施の形態により明らかになるであろう。【００１７】
【図１】図１は、本発明の概要を説明するための概念図である。
【図２】図２は、本発明の実施の形態に係るリクエスト発行プログラムの一例を示す概念図である。
【図３Ａ】図３Ａは、本発明の実施の形態に係るリクエスト発行プログラムの他の例を示す概念図である。
【図３Ｂ】図３Ｂは、本発明の実施の形態に係るリクエスト発行プログラムの他の例を示す概念図である。
【図４】図４は、本発明の実施の形態に係るシステム性能試験装置の構成を示すブロック図である。
【図５】図５は、本発明の実施の形態に係るシステム性能試験装置の機能を示すブロック図である。
【図６】図６は、本発明の実施の形態に係るシステム性能試験方法を示すフローチャートである。
【図７】図７は、本発明の実施の形態に係るリクエスト発行プログラム生成モジュールの機能を示すブロック図である。
【図８】図８は、本発明の実施の形態において作成される性能レポートデータの一例を示す概念図である。
【発明を実施するための最良の形態】
【００１８】
１．概要
サーバシステムの性能試験では、なるべく現実に即した負荷を当該サーバシステムに印加することが望ましい。そのため、本願発明者は次の点に着目した。【００１９】
サーバシステム（トランザクションシステム）の性能は、単位時間あたりに処理できるリクエスト数（スループット）で表されることが多い。但し、スループットは、リクエストの種類にも依存する。それは、リクエストの処理に必要なシステムリソースや時間は、リクエストの種類によって大きく異なるからである。例えば、ウェブページ上で商品を閲覧するリクエストの場合、ウェブサーバはメモリやディスクに記録されている商品データを単に返すだけであり、その負荷は比較的軽い。一方、カートへの商品の追加などのリクエストの場合、ウェブサーバはメモリやディスク上のデータを書き換える必要があり、その負荷は商品閲覧時よりも重くなる。このように、サーバシステムの性能や負荷は、リクエストの種類に依存する。従って、サーバシステムの性能を試験する際には、リクエストの種類に応じた負荷を印加することが重要である。【００２０】
また、近年のウェブアプリケーションにおいて、ユーザによって既に発行されたリクエストの情報をサーバが保持している場合がある。例えば、ショッピングサイトにおいてユーザが過去に選択した商品の情報を、ウェブサーバが内部に保持している場合がある。そのため、ウェブサーバの性能試験において意図通りの負荷をかけるためには、リクエストを一定の順序で発行することも重要である。このようにある一定の順序で発行されるリクエスト群は、以下「リクエストシーケンス」と参照される。１つのリクエストシーケンスは、ある目的を持ったユーザの一連のアクションに相当し、サーバシステムに対する一連のリクエストから構成される。リクエストシーケンスは、ある目的を持ったユーザの行動パターンを反映しているとも言える。【００２１】
更に、サーバシステムにアクセスするユーザの行動パターンは様々である。例えばウェブサーバシステムにおいて、ユーザがショッピングサイトにアクセスする場合を考える。ユーザが商品を閲覧するだけの場合と、ユーザが所望の商品を選択し購入する場合とでは、ユーザの行動パターンは全く異なる。性能試験において現実に即した負荷をサーバシステムにかけるためには、そのようなユーザの様々な行動パターンをも考慮することが重要である。従って、本発明では、様々な行動パターンのそれぞれを反映した複数種類のリクエストシーケンスが予め用意される。すなわち、ユーザの典型的な行動パターンが類型化され、複数種類のリクエストシーケンスとして提供される。【００２２】
例えば、図１に示されるように、ｎ種類のリクエストシーケンスＲ１〜Ｒｎを含むリクエストシーケンス集合が予め用意される（ｎは２以上の整数）。リクエストシーケンスＲ１〜Ｒｎの各々は、サーバシステムに対する一連のリクエストから構成される。つまり、ｎ種類のリクエストシーケンスＲ１〜Ｒｎは、それぞれ異なるｎ種類の行動パターンに対応している。【００２３】
例えば、リクエストシーケンスＲ１は、商品閲覧が目的のユーザの行動パターンを反映している。商品閲覧が目的のユーザは、典型的には次のようにサイト内を移動する：「トップ、商品カテゴリＡ選択、商品ａ閲覧、商品ｂ閲覧、商品ｃ閲覧」。この移動に伴ってウェブブラウザ等から発行される一連のリクエストが、１つのリクエストシーケンスＲ１に対応する。【００２４】
また、リクエストシーケンスＲ２は、特定商品の購入が目的のユーザの行動パターンを反映している。特定商品の購入が目的のユーザは、典型的には次のようにサイト内を移動する：「トップ、ログイン、商品カテゴリＢ選択、商品ｄ選択、カートに追加、カートを確認、ユーザ情報（送付先やカード番号）の入力、最終確認と決定、購入完了、ログアウト」。この移動や操作に伴ってウェブブラウザ等から発行される一連のリクエストが、１つのリクエストシーケンスＲ２に対応する。このリクエストシーケンスＲ２は、上述のリクエストシーケンスＲ１とは異なっている。【００２５】
このように、様々な行動パターンを類型化することによって、複数種類のリクエストシーケンスＲ１〜Ｒｎが作成される。そして、図１に示されるように、それら複数種類のリクエストシーケンスＲ１〜Ｒｎが、性能評価対象のサーバシステム（以下、「評価対象システム」と参照される）に対して発行される。これにより、ユーザの様々な行動パターンが考慮された負荷を評価対象システムにかけることが可能になる。すなわち、性能試験において、現実に即した負荷を評価対象システムにかけることが可能になる。【００２６】
ここで、上述の通り、サーバシステムの性能はリクエストの種類にも依存することに留意されたい。異なるリクエストシーケンスは、異なるリクエストを含んでいるので、サーバシステムに与える負荷も当然異なる。従って、複数種類のリクエストシーケンスＲ１〜Ｒｎが評価対象システムに対して発行される場合、評価対象システムの性能は、それら複数種類のリクエストシーケンスＲ１〜Ｒｎ間の発行比率（混合比率）にも依存すると考えられる。図１に示されるように、リクエストシーケンスＲ１〜Ｒｎ間の発行比率は、Ｘ１：Ｘ２：・・・：Ｘｎで与えられるとする（Ｘ１〜Ｘｎは整数）。この発行比率を可変的に設定することによって、評価対象システムに対して、複数種類のリクエストシーケンスＲ１〜Ｒｎを様々な比率で発行することができる。つまり、発行比率に応じて変化する評価対象システムの性能を試験することが可能となる。【００２７】
以上に説明されたように、本発明は、現実のサーバシステム（トランザクションシステム）の性能が複数種類のリクエストシーケンスの発行比率によって決定されるという観点に立脚している。評価対象システムの性能試験においては、図１に示されるように、複数種類のリクエストシーケンスＲ１〜Ｒｎが、指定された発行比率Ｘ１：Ｘ２：・・・：Ｘｎで評価対象システムに対して発行される。これにより、現実に即した負荷を評価対象システムに印加して、当該評価対象システムの性能試験を実施することが可能となる。以下、図１で示された処理を実現するための具体的な構成及び方法を説明する。【００２８】
２．リクエスト発行プログラム
図１で示された処理はプログラム化することができる。図１で示された処理をコンピュータに実行させるコンピュータプログラムは、以下、「リクエスト発行プログラムＰＲＥＱ」と参照される。リクエスト発行プログラムＰＲＥＱは、評価対象システムに対して、指定された発行比率で複数種類のリクエストシーケンスＲ１〜Ｒｎを発行する。【００２９】
図２は、本実施の形態に係るリクエスト発行プログラムＰＲＥＱの一例を概念的に示している。図２に示されるように、リクエスト発行プログラムＰＲＥＱは、ループ部Ｍ１、乱数発生部Ｍ２、及びシーケンス選択発行部Ｍ３を有している。【００３０】
ループ部Ｍ１は、リクエスト発行プログラムＰＲＥＱによる処理を停止させるか否かを判定する。所定の停止条件が満たされると（ステップＳ１；Ｙｅｓ）、ループ部Ｍ１は処理を停止させる。所定の停止条件としては、「プログラムの実行開始から３０分が経過した場合」や「ユーザからのキー入力があった場合」などが挙げられる。その停止条件が満たされていない場合（ステップＳ１；Ｎｏ）、続く処理が実行される。【００３１】
続く処理では、複数種類のリクエストシーケンスＲ１〜Ｒｎが、指定された発行比率で発行される。そのためには、次のような手法が考えられる。リクエストシーケンスＲ１〜Ｒｎ間の発行比率は、Ｘ１：Ｘ２：・・・：Ｘｎである（Ｘ１〜Ｘｎは整数）。このとき、第ｉリクエストシーケンスＲｉは、Ｘｉ個の番号に対応付けられる（ｉ＝１〜ｎ）。例として、３種類のリクエストシーケンスＲ１，Ｒ２，Ｒ３の発行比率が３：５：２である場合を考える。そして、リクエストシーケンスＲ１が３個の番号（数字）０〜２に対応付けられ、リクエストシーケンスＲ２が５個の番号３〜７に対応付けられ、リクエストシーケンスＲ３が２個の番号８〜９に対応付けられるとする。この場合、０〜９までの番号をランダムに発生させることによって、３種類のリクエストシーケンスＲ１，Ｒ２，Ｒ３を所望の比率３：５：２で選択することが可能となる。【００３２】
そのため、乱数発生部Ｍ２は乱数を発生させる（ステップＳ２）。つまり、乱数発生部Ｍ２は、複数の番号（数字）をランダムに発生させる。その複数の番号は、複数種類のリクエストシーケンスＲ１〜Ｒｎのそれぞれに対応付けられた番号を少なくとも含んでいる必要がある。上記例の場合、乱数発生部Ｍ２は、０以上１０未満の整数をランダムに発生させる。それには、ハードウェアやプログラミング言語処理系のライブラリ等で提供される機能を利用すればよい。例えば、０以上１未満の小数（浮動小数点数）型の一様乱数を返す組み込み関数がよく知られている。その組み込み関数をｒａｎｄ（）で表した場合、ｒａｎｄ（）×１０の整数部分を用いることによって、０以上１０未満の整数型の乱数を得ることができる。どのような乱数を発生させればよいかは、発行比率Ｘ１：Ｘ２：・・・：Ｘｎ（あるいはその総和Ｘ１＋Ｘ２＋・・・＋Ｘｎ）から決定することができる。【００３３】
次に、シーケンス選択発行部Ｍ３は、乱数発生部Ｍ２によって得られた１つの番号（乱数）に対応する１つのリクエストシーケンスを選択的に発行する。つまり、シーケンス選択発行部Ｍ３は、複数種類のリクエストシーケンスＲ１〜Ｒｎの中から当該番号に対応するリクエストシーケンスを選択し（ステップＳ３）、選択されたリクエストシーケンスを評価対象システムに対して発行する（ステップＳ４）。例えば、発生した番号がリクエストシーケンスＲ１に対応付けられている場合（ステップＳ３−１；Ｙｅｓ）、そのリクエストシーケンスＲ１が発行される（ステップＳ４−１）。番号がリクエストシーケンスＲ１に対応していない場合（ステップＳ３−１；Ｎｏ）、次のリクエストシーケンスＲ２に対応しているかどうかが判定される。上記例の場合、番号が０〜２のいずれかであればリクエストシーケンスＲ１が選択的に発行され、番号が３〜７のいずれかであればリクエストシーケンスＲ２が選択的に発行され、番号が８〜９のいずれかであれば、リクエストシーケンスＲ３が選択的に発行される。【００３４】
乱数発生部Ｍ２とシーケンス選択発行部Ｍ３による処理は、上述の停止条件が満たされるまで繰り返し実行される。各ループにおいて、乱数が生成され、その乱数に対応付けられたリクエストシーケンスが選択的に発行される。これを繰り返すことによって、複数種類のリクエストシーケンスＲ１〜Ｒｎを指定された発行比率Ｘ１：Ｘ２：・・・：Ｘｎで発行することが可能となる。尚、番号と各リクエストシーケンスとの対応付けは、上記例に限られない。【００３５】
また、リクエスト発行プログラムＰＲＥＱは、図２で示されたものに限られず、複数のプログラムから構成されていてもよい。図３Ａ及び図３Ｂは、本実施の形態に係るリクエスト発行プログラムＰＲＥＱの他の例を概念的に示している。本例では、リクエスト発行プログラムＰＲＥＱが、各リクエストシーケンスの発行のみを担うデーモン部（図３Ｂ）と、そのデーモン部に対して命令を出すメイン部（図３Ａ）から構成される。リクエストシーケンスＲ１〜Ｒｎはそれぞれ異なるデーモンによって発行され、１つのデーモンＤｋが１つのリクエストシーケンスＲｋの発行を担うとする（ｋ＝１〜ｎ）。【００３６】
図２の場合と同様に、所定の停止条件が満たされると（ステップＳ１；Ｙｅｓ）、ループ部Ｍ１は処理を停止させる。具体的には、ループ部Ｍ１は、全デーモンに停止命令を送出する（ステップＳ５）。各デーモンＤｋは、停止命令を受け取ると（ステップＳ７−ｋ；Ｙｅｓ）、処理を終了する。また、シーケンス選択発行部Ｍ３は、乱数発生部Ｍ２によって得られた１つの番号に対応する１つのリクエストシーケンスを選択的に発行する。具体的には、当該番号がリクエストシーケンスＲｋに対応付けられている場合（ステップＳ３−ｋ；Ｙｅｓ）、シーケンス選択発行部Ｍ３は、デーモンＤｋに発行命令を送出する（ステップＳ６−ｋ）。デーモンＤｋは、発行命令を受け取ると（ステップＳ８−ｋ；Ｙｅｓ）、リクエストシーケンスＲｋを発行する（ステップＳ９−ｋ）。これにより、図２の場合と同じ処理が実現される。【００３７】
このように、リクエスト発行プログラムＰＲＥＱとしては様々な例が考えられる。いずれの場合も、リクエスト発行プログラムＰＲＥＱは、ループ部Ｍ１、乱数発生部Ｍ２、及びシーケンス選択発行部Ｍ３を有している。そして、リクエスト発行プログラムＰＲＥＱは、所定の停止条件が満たされるまで、複数種類のリクエストシーケンスＲ１〜Ｒｎを指定された発行比率で発行する。【００３８】
３．システム性能試験装置
図４は、本実施の形態に係るシステム性能試験装置１０の構成を示すブロック図である。システム性能試験装置１０は、評価対象システム１の性能を試験するための装置であり、ネットワークを介して評価対象システム１と通信可能に接続されている。【００３９】
評価対象システム１は、例えばウェブサーバシステムである。ウェブサーバシステムは、少なくとも１台のサーバを備えている。ウェブサーバシステムは、物理的に複数台のサーバによって構成されている場合も多い。これは、ウェブアプリケーションが、ウェブサーバ、アプリケーションサーバ及びデータベースサーバの３種類のサーバを用いて構築されることが多いためである。ウェブサーバ及びアプリケーションサーバが１台の物理サーバで提供され、データベースサーバとしてもう１台の物理サーバが用意される場合もある。さらには、近年の仮想化技術を利用して、１台の物理サーバ上に構築される複数の仮想マシンを上記３種類のサーバとして稼動させてもよい。【００４０】
システム性能試験装置１０はコンピュータであり、処理装置２０、記憶装置３０、通信装置４０、入力装置５０及び出力装置６０を備えている。処理装置２０はＣＰＵを含んでおり、各種データ処理を行う。記憶装置３０として、ＨＤＤ（Hard Disk Drive）やＲＡＭ（Random Access Memory）等が例示される。通信装置４０は、ネットワークに接続されるネットワークインタフェースである。入力装置５０として、キーボード、マウス、メディアドライブ等が例示される。出力装置６０として、ディスプレイ等が例示される。【００４１】
処理装置２０は、性能試験プログラムＰＲＯＧを実行することによって、評価対象システム１の性能試験処理を実現する。性能試験プログラムＰＲＯＧは、コンピュータによって実行されるソフトウェアプログラムであり、典型的にはコンピュータ読み取り可能な記録媒体に記録されている。処理装置２０は、その記録媒体から性能試験プログラムＰＲＯＧを読み出し、実行する。【００４２】
性能試験プログラムＰＲＯＧは、生成プログラムＰＲＯＧ１００、実行プログラムＰＲＯＧ２００及び評価プログラムＰＲＯＧ３００を含んでいる。生成プログラムＰＲＯＧ１００は、上述のリクエスト発行プログラムＰＲＥＱを生成する。実行プログラムＰＲＯＧ２００は、生成されたリクエスト発行プログラムＰＲＥＱを実行する。評価プログラムＰＲＯＧ３００は、リクエスト発行プログラムＰＲＥＱの実行中に、評価対象システム１の内部状態（性能）を計測し、計測結果をレポートする。【００４３】
４．性能試験処理
次に、図４で示されたシステム性能試験装置１０による処理を詳しく説明する。図５は、性能試験におけるシステム性能試験装置１０の機能ブロックとデータの流れを示している。図５に示されるように、システム性能試験装置１０は、リクエスト発行プログラム生成モジュール１００と、リクエスト発行プログラム実行モジュール２００と、性能評価モジュール３００を備えている。リクエスト発行プログラム生成モジュール１００は、処理装置２０が生成プログラムＰＲＯＧ１００を実行することによって実現される。リクエスト発行プログラム実行モジュール２００は、処理装置２０が実行プログラムＰＲＯＧ２００を実行することによって実現される。性能評価モジュール３００は、処理装置２０が評価プログラムＰＲＯＧ３００を実行することによって実現される。【００４４】
図６は、本実施の形態に係る性能試験処理のフローを示している。以下、図４〜図６を適宜参照して、各ステップにおける処理を詳しく説明する。【００４５】
４−１．ステップＳ１００
リクエスト発行プログラム生成モジュール１００は、記憶装置３０に格納されている停止条件データＤＣ、シーケンス集合データＤＲ及び発行比率データＤＸに基づいて、リクエスト発行プログラムＰＲＥＱを生成する。図７は、リクエスト発行プログラム生成モジュール１００の機能ブロックを示している。リクエスト発行プログラム生成モジュール１００は、ループ部生成モジュール１１０、乱数発生部生成モジュール１２０、及びシーケンス選択発行部生成モジュール１３０を含んでいる。【００４６】
（ステップＳ１１０）
ループ部生成モジュール１１０は、記憶装置３０から停止条件データＤＣを読み出す。停止条件データＤＣは、生成されるリクエスト発行プログラムＰＲＥＱの停止条件を示す。その停止条件としては、「プログラムの実行開始から３０分が経過した場合」や「ユーザからのキー入力があった場合」などが挙げられる。ループ部生成モジュール１１０は、この停止条件データＤＣに基づいて、リクエスト発行プログラムＰＲＥＱのループ部Ｍ１を生成する（図２、図３Ａ参照）。【００４７】
（ステップＳ１２０）
乱数発生部生成モジュール１２０は、記憶装置３０から発行比率データＤＸを読み出す。発行比率データＤＸは、発行比率Ｘ１：Ｘ２：・・・：Ｘｎを指定する。乱数発行部生成モジュール１２０は、この発行比率データＤＸに基づいて、リクエスト発行プログラムＰＲＥＱの乱数発生部Ｍ２を生成する（図２、図３Ａ参照）。上述の通り、乱数発生部Ｍ２を生成するためには、ハードウェアやプログラミング言語処理系のライブラリ等で提供される組み込み関数ｒａｎｄを利用すればよい。どのような乱数を発生させればよいかは、発行比率Ｘ１：Ｘ２：・・・：Ｘｎ（あるいはその総和Ｘ１＋Ｘ２＋・・・＋Ｘｎ）から決定することができる。【００４８】
（ステップＳ１３０）
シーケンス選択発行部生成モジュール１３０は、記憶装置３０から発行比率データＤＸ及びシーケンス集合データＤＲを読み出す。シーケンス集合データＤＲは、図１で示されたリクエストシーケンス集合（複数種類のリクエストシーケンスＲ１〜Ｒｎ）を与える。シーケンス選択発行部生成モジュール１３０は、リクエストシーケンスＲ１〜Ｒｎとそれらの発行比率Ｘ１：Ｘ２：・・・：Ｘｎに基づいて、リクエスト発行プログラムＰＲＥＱのシーケンス選択発行部Ｍ３を生成する（図２、図３Ａ、図３Ｂ参照）。具体的には、上述の通り、第ｉリクエストシーケンスＲｉが、乱数発生部Ｍ２によって生成される（Ｘ１＋Ｘ２＋・・・＋Ｘｎ）個の番号のうちＸｉ個の番号群に対応付けられる。これにより、生成された乱数に対応するリクエストシーケンスを選択的に発行するシーケンス選択発行部Ｍ３を生成することができる。【００４９】
このようにして、リクエスト発行プログラムＰＲＥＱが完成する。リクエスト発行プログラム生成モジュール１００は、生成されたリクエスト発行プログラムＰＲＥＱを、記憶装置３０に格納し、また、リクエスト発行プログラム実行モジュール２００に送る。【００５０】
また、リクエスト発行プログラム生成モジュール１００は、様々なパターンの発行比率毎に、リクエスト発行プログラムＰＲＥＱを生成することもできる。例えば、発行比率データＤＸが複数のパターンの発行比率を示している場合を考える。この場合、乱数発生部生成モジュール１２０とシーケンス選択発行部生成モジュール１３０は、発行比率データＤＸから発行比率を順番に選択し、選択した発行比率を用いて乱数発生部Ｍ２とシーケンス選択発行部Ｍ３を生成する。これにより、リクエスト発行プログラム生成モジュール１００は、発行比率が互いに異なる複数種のリクエスト発行プログラムＰＲＥＱを順番に生成することができる。複数のリクエスト発行プログラムＰＲＥＱは、順番にリクエスト発行プログラム実行モジュール２００に送られる。【００５１】
４−２．ステップＳ２００
リクエスト発行プログラム実行モジュール２００は、ステップＳ１００において生成されたリクエスト発行プログラムＰＲＥＱを実行する。この時の処理は、リクエスト発行プログラムＰＲＥＱの処理と同じである（図２、図３Ａ及び図３Ｂ参照）。すなわち、リクエスト発行プログラム実行モジュール２００は、評価対象システム１に対して、複数種類のリクエストシーケンスＲ１〜Ｒｎを指定された発行比率で発行する。また、リクエスト発行プログラム実行モジュール２００は、各リクエスト対するレスポンスを評価対象システム１から受け取る。リクエストシーケンスの送信とレスポンスの受信は、通信装置４０を通して行われる。本ステップＳ２００は、所定の停止条件が満たされるまで実行される。【００５２】
尚、あるリクエストシーケンスに含まれる各リクエストを発行する際、リクエストの発行間隔は任意でよい。発行中のリクエストに対するレスポンスを取得したのち、ただちに次のリクエストを発行してもよいし、一定時間待ってから発行してもよい。また、発行間隔を一様乱数や指数乱数を使って決定してもよい。また、リクエスト発行プロセス（スレッド）を複数起動し、評価対象システム１に対してこれらのスレッドが同時にリクエストを発行するようにリクエスト発行プログラムＰＲＥＱを構成することも可能である。【００５３】
４−３．ステップＳ３００
ステップＳ２００と同時に、性能評価モジュール３００は、評価対象システム１の性能（内部状態）を計測する。つまり、性能評価モジュール３００は、リクエストシーケンスＲ１〜Ｒｎを処理中の評価対象システム１の性能（内部状態）を計測する。そして、性能評価モジュール３００は、計測結果を性能レポートとして出力する。図５に示されるように、性能評価モジュール３００は、計測モジュール３１０とレポート作成モジュール３２０を含んでいる。【００５４】
（ステップＳ３１０）
計測モジュール３１０は、評価対象システム１の性能を計測する。例えば、計測モジュール３１０は、評価対象システム１を構成するサーバの「ＣＰＵ使用率」及び「スループット」を計測する。ＣＰＵ使用率は、ＣＰＵが単位時間あたりに処理を行う割合である。例えば、ＣＰＵが単位時間のうち３０％の時間だけ処理を行い、残りの７０％の時間はアイドル状態であったとき、ＣＰＵ使用率は０．３（３０％）である。スループットは、単位時間あたりに処理できるリクエスト数である。ＣＰＵ使用率やスループットは、評価対象システム１の上で動作するＯＳやウェブサーバプログラム等が備える機能を使って取得することができる。スループットに関しては、リクエスト発行プログラム実行モジュール２００が受信するレスポンスの受信数を基に算出することもできる。【００５５】
評価対象システム１は、ウェブサーバ、アプリケーションサーバ及びデータベースサーバの３種類のサーバを用いて構築される場合がある。その場合は、各サーバのＣＰＵ使用率と、リクエストを最初に受信するウェブサーバのスループットが計測される。また、近年の仮想化技術を利用して、１台の物理サーバ上に構築される複数の仮想マシンを上記３種類のサーバとして稼動させてもよい。その場合は、仮想マシン上のＯＳからＣＰＵ使用率を取得するとともに、物理サーバ上のＯＳやＶＭＭ（バーチャルマシンモニタ）から物理サーバのＣＰＵ使用率を取得してもよい。【００５６】
計測モジュール３１０は、計測された性能を示す計測データＭＥＳを記憶装置３０に順次格納する。つまり、計測データＭＥＳは、計測された性能（ＣＰＵ使用率やスループット）の時系列データとなる。【００５７】
（ステップＳ３２０）
レポート作成モジュール３２０は、あるタイミングで、記憶装置３０から計測データＭＥＳ及び発行比率データＤＸを読み出す。そして、レポート作成モジュール３２０は、計測データＭＥＳと発行比率データＤＸを組み合わせて性能レポートデータＲＥＰを作成する。性能レポートデータＲＥＰは、発行比率データＤＸで示される発行比率と計測データＭＥＳで示される計測性能との対応関係を示すデータである。【００５８】
上述の通り、計測データＭＥＳは、評価対象システム１の性能の時系列変化を示している。従って、レポート作成モジュール３２０は、評価対象システム１の性能（ＣＰＵ使用率、スループット）の所定期間における平均値や最大値を求めることができる。その平均値や最大値が、発行比率データＤＸで示される発行比率に応じた性能として採用されてもよい。レポート作成モジュール３２０は、発行比率と算出された性能との対応関係を示す性能レポートデータＲＥＰを作成する。【００５９】
発行比率を様々なパターン間で変化させることによって、様々な発行比率の場合の評価対象システム１の性能を見積もることができる。すなわち、発行比率の種類に応じた性能の変化を知ることができる。例えば、発行比率が互いに異なる複数種のリクエスト発行プログラムＰＲＥＱが順番に生成される。そして、それらリクエスト発行プログラムＰＲＥＱの各々に関して、上述のステップＳ２００、Ｓ３１０及びＳ３２０が実施される。発行比率の異なるリクエスト発行プログラムＰＲＥＱが実行されるたびに、発行比率と算出された性能との対応関係が性能レポートデータＲＥＰに書き加えられていく。【００６０】
図８は、作成される性能レポートデータＲＥＰの一例を示している。図８に示されるように、性能レポートデータＲＥＰは、複数のパターンの発行比率のそれぞれと性能（スループット、ＣＰＵ使用率）との対応関係を示している。スループットの単位はＴＰＳ（Transactions Per Second）である。このような性能レポートデータＲＥＰを用いることにより、ユーザは、発行比率に依存する評価対象システム１の性能の変化や変動範囲を解析することができる。【００６１】
発行比率は、所定の規則に従って自動的に変化させることもできる。例えば、３種類のリクエストシーケンスＲ１〜Ｒ３の場合に、発行比率Ｘ１：Ｘ２：Ｘ３の分配比率を１ずつ変化させる。つまり、発行比率（Ｘ１：Ｘ２：Ｘ３）を、（０：０：５）、（０：１：４）、（０：２：３）、・・・、（１：０：４）、（１：１：３）、・・・、（５：０：０）のように変化させる。これにより、様々な発行比率に応じたシステム性能を網羅的に検証することが可能となる。【００６２】
（ステップＳ３３０）
以上の処理により作成された性能レポートデータＲＥＰは、出力装置６０（ディスプレイやプリンタ）にレポートとして出力される。例えば、性能レポートデータＲＥＰは、ディスプレイに表示される。ユーザは、その表示を参照して、発行比率に依存する評価対象システム１の性能の変化や変動範囲を検証することができる。【００６３】
５．効果
以上に説明されたように、本実施の形態によれば、評価対象システム１の性能試験において有用なリクエスト発行プログラムＰＲＥＱが提供される。そして、そのリクエスト発行プログラムＰＲＥＱを用いることによって、評価対象システム１に対して、複数種類のリクエストシーケンスＲ１〜Ｒｎを指定された発行比率Ｘ１：Ｘ２：・・・：Ｘｎで発行することが可能となる。これにより、現実に即した負荷を印加して、当該評価対象システム１の性能試験を実施することが可能となる。結果として、性能試験の精度が向上する。【００６４】
また、発行比率は、システム設計者や運用管理者の想定する前提や状況によって変化する。よって、様々な発行比率を想定してシステム性能を予め計測しておくことは、システム運用上非常に有益である。例えば、システム設計者や運用管理者は、上述の性能レポートを使って、システムのユーザとあらかじめ性能の保証に関する契約を交わすことができる。また、性能レポートと運用データをもとに、システムの増強や契約更改の計画を立案することもできる。【００６５】
本実施の形態は、データセンター等におけるシステム運用管理業務のための性能検査および性能試験に好適である。【００６６】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。【００６７】
本出願は、２００８年４月２１日に出願された日本国特許出願２００８−１１０３２６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2009130967.tif 000003
【図２】
2009130967.tif 000004
【図３Ａ】
2009130967.tif 000005
【図３Ｂ】
2009130967.tif 000006
【図４】
2009130967.tif 000007
【図５】
2009130967.tif 000008
【図６】
2009130967.tif 000009
【図７】
2009130967.tif 000010
【図８】
2009130967.tif 000011
【国際調査報告】
2009130967.tif 000012
2009130967.tif 000013
2009130967.tif 000014