ヘッダーをスキップ
Oracle Real-Time Decisionsプラットフォーム開発者ガイド
リリース3.0
B54059-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

14 Load Generatorについて

Load Generatorは、デシジョン・リクエストをシミュレートしてインライン・サービスのデバッグおよびベンチマークを行うためのツールです。Load Generatorは、インライン・サービスのテストとパフォーマンスの特徴付けの両方に使用します。

Load Generatorは、RTD_HOME\scripts\loadgen.cmdを実行するとアクセスできます。Load Generatorスクリプトのサンプルの詳細は、Cross Sellサンプルのetcディレクトリを参照してください。

Load Generatorには、次の4つのタブがあります。

この章の内容は次のとおりです。

14.1 Load Generatorによるテスト

Load Generatorは、サーバーに対して負荷を生成し、パフォーマンスおよびスケーラビリティをテストするために使用します。理にかなったランダムなメッセージがインライン・サービスに送信され、モデルが学習できます。Load Generatorを十分な時間実行することによって、モデルの性能を測定できます。

14.2 Load Generatorによるパフォーマンスの特徴付け

インライン・サービスを構成したら、Load Generatorを使用し、特定の負荷がある状態で必要なサーバー数を判断するために、サービスの実行状況を評価します。Load Generatorは多数のスレッドの実行を扱い、複数のスクリプトを同時に実行できるので、サーバーに負荷をかけるとき、通常は1台のクライアント・マシンでLoad Generatorを1インスタンス実行するのみで十分です。さらに負荷をかける必要があり、Microsoftのタスク マネージャに、Load Generatorがすでにクライアントの処理能力の大部分を使用していると表示された場合、Load Generatorのインスタンスのいくつかを何台かのクライアント・コンピュータで起動し、1台のサーバーをポイントすることができます。理にかなったランダムなメッセージが生成され、セッションのコンテキストで送信されます。サーバーとともに、クライアントがパフォーマンス統計を測定します。

14.3 Load Generatorのセッションの実行

セッションを開始するには、まずスクリプトを新規に作成するか、既存のスクリプトをロードします。次に、「Run」メニューから「Run」オプションを選択するか、ツールバーの「Run」アイコンをクリックします。「General」タブでは、データ・サンプル間の遅延を変更できます。

14.3.1 サーバーの負荷の測定

Run」タブには、実行中のセッションのリアルタイム情報が表示されます。表14-1は、「Run」タブのオプションを示しています。

表14-1 Load Generatorの「Run」タブのオプション

オプション名 説明

New Requests

前のデータ・サンプルが取得された後にクローズされたリクエストの数。

New Errors

前のデータ・サンプルが記録された後に、クライアント側とサーバー側いずれかで発生したエラーの数。

New Default Responses

最後のデータ・サンプル以後、そしてアドバイザのインライン・サービスでデフォルトのレスポンスが定義されて以後、(インフォーマントの統合点リクエストと相対する)アドバイザの統合点リクエストに発生したエラーの数。

Active Scripts

このLoad Generatorからサーバーに同時に接続しているシミュレートされたユーザーの数。

Peak Response Time

現在のデータ・サンプル中、最も古いリクエストをクローズするまでにかかった時間。

Total Requests

クローズされたリクエストの合計数。

Total Errors

エラーの合計数。

Total Default Responses

デフォルトのレスポンスの合計数。

Total Finished Scripts

シミュレートされたユーザーの合計数。

Average Script Duration

開始から終了までの、平均的なスクリプトの実行時間(ミリ秒)。


14.4 パフォーマンス・グラフの表示

デフォルトでは「Requests per Second」グラフが表示されます。「View」→「Graphs」を選択すると、グラフの表示と非表示を切り替えることができます。グラフのデータを消去するには、「View」→「Clear Graphs」を選択するか、ツールバーの「Clear Graphs」アイコンをクリックします。

ごみ箱を表示します。

スクリプトを停止して再開した場合、記録されたデータはすべて消去されます。ただし、セッションを一時停止して再開した場合は、データは消去されません。使用可能なグラフは次のとおりです。

14.5 「General」タブについて

General」タブには、Load Generatorの構成、タイミング、および、どのインライン・サービスが指定されているかに関する変数が含まれています。「General」タブには、「Load Generator」、「Details」、「Think Time」、「Scripts」および「Logging」の5つのセクションがあります。

この項の内容は次のとおりです。

14.5.1 「Load Generator」セクション

General」タブの「Load Generator」セクションには次のオプションがあります。

  • Client Configuration: サーバーとの通信にLoad Generatorが使用するエンドポイントを記述します。

  • Graphs Refresh Interval in Seconds: グラフおよびカウンタの更新間の遅延を設定します。スクリプトがすでに実行中のときに設定を有効にするには、「Apply」をクリックします。

14.5.2 「Details」セクション

General」タブの「Details」セクションには次のオプションがあります。

  • Inline Service: このスクリプトからリクエストが送信されるインライン・サービスの名前。

  • Random Number Generator Seed: スクリプトにランダムな要素がある場合、これによってランダムな動作をある程度まで再現できます。同時に複数のスクリプトを実行している場合、ランダムな状態を繰り返すことはできません(第14.5.4項「「Scripts」セクション」の「Number of Concurrent Scripts to Run」を参照)。

14.5.3 「Think Time」セクション

General」タブの「Think Time」セクションには次のオプションがあります。

  • Fixed Global Think Time: シミュレートされたすべてのユーザーがリクエスト間で待機する秒数。

  • Ranged Global Think Time: シミュレートされたユーザーがリクエスト間で待機する可変時間。この思考時間は、ランダムな数字、または設定された数字範囲から順次増分される数字によって変化します。

  • Minimum: ゼロ以外の最小待機秒数。

  • Maximum: ゼロ以外の最大待機秒数(最小待機秒数より大きい数値であることが必要)。

  • Access Type Sequential: アクセスのたびに1ずつ増分される思考時間で、最大待機秒数に達すると最小待機秒数にリセットされます。

  • Access Type Random: アクセスのたびに、最小待機秒数と最大待機秒数の間の値を選択します(最小待機秒数と最大待機秒数も選択可)。

14.5.4 「Scripts」セクション

General」タブの「Scripts」セクションには次のオプションがあります。

  • Number of Concurrent Scripts to Run: シミュレート対象となる同時ユーザーの数。

  • Maximum Number of Scripts to Run: このフィールドの値が正の場合、その数のセッションの完了後、Load Generatorの実行は停止します。ゼロは無制限を意味します。

14.5.5 「Logging」セクション

General」タブの「Logging」セクションには次のオプションがあります。

  • Enable Logging: このオプションを選択すると、Load Generatorの統計データが、定期的にファイルに書き込まれます。

  • Append to Existing File: ロギングが有効になっているとき、このオプションを選択すると、ログ・ファイルがすでに存在している場合はその最後に新しい統計データが追加され、存在していない場合はファイルが新規に作成されます。

  • Log File: タブ区切りのログ・ファイルへのフルパス。その内容の詳細は、第14.8項「Load GeneratorのCSVログ・ファイルの内容」を参照してください。

  • Logging Interval in Seconds: ログ・ファイルに値が書き込まれてから、次の値セットが書き込まれるまでに待機する秒数。

14.6 変数について

変数を使用すると、負荷をシミュレートする際に、様々なソースから情報を得ることができます。セッション変数は、セッションごとに1回生成されます。セッション変数は、その後アクセスした際にも同じ値が使用されます。メッセージ変数は、1つのリクエスト内では変わりません。アクセス変数は、読込みのたびに変わる場合があります。変数は「Message Actions」で使用されます。

この項の内容は次のとおりです。

14.6.1 変数の使用

メッセージで変数をメッセージ・パラメータの値に使用する場合(「Edit Script」タブ内)、「Variable」列のドロップダウン・リストから選択します。ただし、「Value」列で連結文字列値の一部として使用する場合、変数名を中カッコで囲みます(たとえばC001-{customerNum})。

14.6.2 変数の種類

変数には次の5種類があります。

  • Constant Value: 定数の値。

  • Integer Range: 範囲から整数を選択します。次に例を示します。

    Minimum: 0, Maximum: 50000, Access Type: Random
    Minimum: 0, Maximum: 1, Access Type: Sequential
    
  • String Array: 指定した配列から文字列を選択します。次に例を示します。

    List: [A, B, C], Access Type: Random
    List: [Male, Female], Access Type: Sequential
    
  • Weighted String Array: 指定した配列から、[0,1]のような可能性とともに文字列を選択します。次に例を示します。

    List: [[0.3, Interested], [0.3, Accepted], [0.4, Rejected]]
    List: [[0.999, Interested], [0.001, Accepted]]
    
  • Text File: ファイルからテキストの行を選択します。次に例を示します。

    c:/data.txt, Access Type: Sequential
    

    この例は、C:ドライブ上のファイルへの絶対参照を示しています。

    inbox/data.txt, Access Type: Random
    

    この例は、スクリプト・ファイルのあるディレクトリ下のinboxディレクトリにあるファイルへの相対参照を示しています。

14.7 アクションについて

現実性のある負荷をサーバーに課す複数のクライアントを簡単にシミュレートできるように、メタデータに指定された、Load Generatorが実行時に解釈するパターンからメッセージを生成できます。このようなアクション・パターンは、「Edit Script」タブで定義します。

このパターンは、メッセージ間の遅延(思考時間)が固定またはランダムになっているメッセージ順序を指定します。また、メッセージ・フィールドに値を生成するパターンもあります。メッセージ・フィールドの値には、オプションでランダムな文字を埋め込んだリテラルな文字列を使用することも、フィールドに関連付けられた値セットからランダムに選択した値を使用することもできます。

セッションをサポートしているため、セッション内のメッセージ全体で特定のフィールドを一定にできます。これは、(顧客ID、コールID、口座番号など)セッション・キーの表現に適しています。

このパターンによって、メッセージの順序付けを柔軟なものにできます。たとえば、典型的なセッションで、特定のメッセージが他のメッセージより前にくるようにしたり、ある種類について事前に決定した数のメッセージが生じるようにすることができます。

14.7.1 アクションの種類

アクションには、メッセージとループの2種類があります。

メッセージの属性は次のとおりです。

  • Integration Point name: メッセージの送信先となる統合点の名前。

  • Session Keys and values: 統合点リクエストに送信される値。セッション・キーは、サーバーがルーティングに使用するので、他のメッセージ・フィールドと区別する必要があります。

ループには「Number of times to execute」の属性があります。この属性には、定数値または範囲値を指定できます。範囲値は、範囲内で順次またはランダムに実行されます。

14.8 Load GeneratorのCSVログ・ファイルの内容

表14-2は、Load Generatorの統計を含むカンマ区切り値(CSV)ファイルのフィールドを示しています。

表14-2 Load GeneratorのCSVファイルのフィールド

フィールド名 説明

Date/Time

カウンタの現在行がファイルに追加された時刻。サーバーのログ・ファイルに格納されているメッセージとの相関関係を高めるため、ミリ秒単位の精度が用意されています。

Thread Pool Size

スクリプトの実行のために使用中または使用可能なスレッド数。これはほとんどのユーザーには無関係な、実装に関する詳細です。

New Requests

前のデータ・サンプルが取得された後にクローズされたリクエストの数。

Total Requests

クローズされたリクエストの合計数。

New Errors

前のデータ・サンプルが記録された後に、クライアント側とサーバー側いずれかで発生したエラーの数。

Total Errors

エラーの合計数。

New Default Responses

最後のデータ・サンプル以後、そしてアドバイザのインライン・サービスでデフォルトのレスポンスが定義されて以後、(インフォーマントの統合点リクエストと相対する)アドバイザの統合点リクエストに発生したエラーの数。

Total Default Responses

デフォルトのレスポンスの合計数。

Active Scripts

このLoad Generatorからサーバーに同時に接続しているシミュレートされたユーザーの数。

Total Scripts

シミュレートされたユーザーの合計数。

Average Response Time (ms)

現在のデータ・サンプル中、最も古いリクエストをクローズするまでにかかった平均時間。

Max Response Time (ms)

現在のデータ・サンプル中、最も古いリクエストをクローズするまでにかかった最長時間。

Average Script Duration (ms)

開始から終了までの、平均的なスクリプトの実行時間(ミリ秒)。

Snapshot Period (ms)

現在のカウンタ値が累積された期間のミリ秒数。


14.9 XLSファイルの内容

この項では、log/loadgen.csvに書き込まれるLoad Generatorのカウンタをレンダリングするための、インストールのetcディレクトリに含まれるMicrosoft Excelのファイルlg_perf.xlsの内容について説明します。

最上部のセルA1には、データソースとしてlg_perf.xlsをタブ区切りのカウンタ・ファイルにリンクする方法を記述したコメントがあります。次にその内容を示します。

Load Generatorのパフォーマンス・ログへのパスを指定するには、セルA2にカーソルを置き、「データ」メニューから「外部データの取り込み」→「テキスト ファイルのインポートの編集」を選択し、loadgen構成で指定したパス(通常は{$install_directory}\log\loadgen.csv)にナビゲートします。要求されたらデフォルトの解析設定を使用します。データは、3 分おきに自動的にリフレッシュされます。間隔などの設定を変更するには、「データ」メニューから「外部データの取り込み」→「データ範囲プロパティ」を選択します。

行2には、各カウンタの名前が含まれるヘッダーが表示されます。前述のCSVファイルのすべてのヘッダーがここに表示され、ヘッダーの下に値が表示されます。