ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Real-Time Decisionsプラットフォーム開発者ガイド
11g リリース1 (11.1.1)
B72429-01
  目次へ移動
目次

前
 
次
 

15 ロード・ジェネレータについて

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

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

ロード・ジェネレータには、次の5つのタブがあります。

この項には次のトピックが含まれます:

15.1 ロード・ジェネレータによるテスト

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

15.2 ロード・ジェネレータによるパフォーマンスの特徴付け

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

15.3 ロード・ジェネレータのセッションの実行

セッションを開始するには、まずスクリプトを新規に作成するか、既存のスクリプトをロードします。「セキュリティ」タブで、有効なユーザー名とパスワードを入力します。次に、「実行」メニューから「実行」オプションを選択するか、ツールバーの「実行」アイコンをクリックします。「一般」タブでは、データ・サンプル間の遅延を変更できます。

15.3.1 サーバーの負荷の測定

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

表15-1ロード・ジェネレータの「実行」タブのオプション

オプション名 説明

新規リクエスト

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

新規エラー

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

新規デフォルト・レスポンス

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

アクティブ・スクリプト

このロード・ジェネレータからサーバーに同時に接続しているシミュレートされたユーザーの数。

ピーク・レスポンス時間

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

リクエスト合計

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

エラー合計

エラーの合計数。

デフォルト・レスポンス合計

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

終了したスクリプトの合計

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

平均スクリプト期間

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


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

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

ごみ箱を表示します。

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

15.5 「一般」タブについて

「一般」タブには、ロード・ジェネレータの構成、タイミング、および、どのインライン・サービスが指定されているかに関する変数が含まれています。「一般」タブには、「ロード・ジェネレータ」、「詳細」、「思考時間」、「スクリプト」および「ロギング」の5つのセクションがあります。

この項には次のトピックが含まれます:

15.5.1 「ロード・ジェネレータ」セクション

「一般」タブの「ロード・ジェネレータ」セクションには次のオプションがあります。

  • クライアント構成: サーバーとの通信にロード・ジェネレータが使用するエンドポイントを記述します。

  • グラフ・リフレッシュ間隔(秒): グラフおよびカウンタの更新間の遅延を設定します。スクリプトがすでに実行中のときに設定を有効にするには、「適用」をクリックします。

15.5.2 「詳細」セクション

「一般」タブの「詳細」セクションには次のオプションがあります。

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

  • ランダム数値ジェネレータ・シード: スクリプトにランダムな要素がある場合、これによってランダムな動作をある程度まで再現できます。複数の並行処理スクリプトを実行している場合、ランダムな状態を繰り返すことはできません(第15.5.4項「「スクリプト」セクション」「実行する同時スクリプトの数」を参照)。

15.5.3 「思考時間」セクション

「一般」タブの「思考時間」セクションには次のオプションがあります。

  • 固定グローバル思考時間: シミュレートされたすべてのユーザーがリクエスト間で待機する秒数。

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

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

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

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

  • アクセス・タイプ・ランダム: アクセスのたびに、最小待機秒数と最大待機秒数の間の値を選択します(最小待機秒数と最大待機秒数も選択可)。

15.5.4 「スクリプト」セクション

「一般」タブの「スクリプト」セクションには次のオプションがあります。

  • 実行する同時スクリプトの数: シミュレート対象となる同時ユーザーの数。

  • 実行するスクリプトの最大数: このフィールドの値が正の場合、その数のセッションの完了後、ロード・ジェネレータの実行は停止します。ゼロは無制限を意味します。

15.5.5 「ロギング」セクション

「一般」タブの「ロギング」セクションには次のオプションがあります。

  • ロギングの有効化: このオプションを選択すると、ロード・ジェネレータの統計データが、定期的にファイルに書き込まれます。

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

  • ログ・ファイル: タブ区切りのログ・ファイルへのフルパス。その内容の詳細は、第15.8項「ロード・ジェネレータのCSVログ・ファイルの内容」を参照してください。

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

15.6 変数について

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

この項には次のトピックが含まれます:

15.6.1 変数の使用

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


注意:

単純に「値」列に{customerNum}を入力することは、「値」列でcustomerNumを選択することに相当します。


15.6.2 変数型

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

  • 定数値: 定数の値。

  • 整数範囲: 範囲から整数を選択します。例:

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

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

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

    c:/data.txt, Access Type: Sequential
    

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

    inbox/data.txt, Access Type: Random
    

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

15.7 アクションについて

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

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

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

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

15.7.1 アクションの種類

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

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

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

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

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

15.8 ロード・ジェネレータのCSVログ・ファイルの内容

表15-2は、ロード・ジェネレータの統計を含むカンマ区切り値(CSV)ファイルのフィールドを示しています。

表15-2ロード・ジェネレータのCSVファイルのフィールド

フィールド名 説明

日付/時間

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

スレッド・プール・サイズ

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

新規リクエスト

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

リクエスト合計

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

新規エラー

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

エラー合計

エラーの合計数。

新規デフォルト・レスポンス

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

デフォルト・レスポンス合計

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

アクティブ・スクリプト

このロード・ジェネレータからサーバーに同時に接続しているシミュレートされたユーザーの数。

スクリプト合計

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

平均レスポンス時間(ms)

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

最大レスポンス時間(ms)

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

平均スクリプト実行時間(ms)

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

スナップショット期間(ms)

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


15.9 XLSファイルのコンテンツ

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

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

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