Oracle® Fusion Middleware Oracle Real-Time Decisionsプラットフォーム開発者ガイド 11g リリース1 (11.1.1) B72429-01 |
|
前 |
次 |
この章では、ロード・ジェネレータについて説明します。ロード・ジェネレータは、デシジョン・リクエストをシミュレートしてインライン・サービスのデバッグおよびベンチマークを行うためのツールです。ロード・ジェネレータは、インライン・サービスのテストとパフォーマンスの特徴付けの両方に使用します。
ロード・ジェネレータは、RTD_HOME
\scripts\loadgen.cmd
を実行するとアクセスできます。ロード・ジェネレータ・スクリプトのサンプルの詳細は、Cross Sellサンプルのetc
ディレクトリを参照してください。
ロード・ジェネレータには、次の5つのタブがあります。
セキュリティ:ロード・ジェネレータのセッションを実行するには、有効なユーザー名とパスワードをこのタブで入力する必要があります。
実行:ロード・ジェネレータのセッションを実行し、測定とグラフを使用してパフォーマンスのフィードバックを提供します。
一般: サーバーへのデータの送信速度やクライアントの構成ファイルの場所など、ロード・ジェネレータの操作の一般的な設定を行います。
変数: スクリプト、メッセージおよびアクセス変数の作成に使用します。
スクリプトの編集: サーバーに送信する統合点リクエストを指定するスクリプトの設定に使用します。
この項には次のトピックが含まれます:
ロード・ジェネレータは、サーバーに対して負荷を生成し、パフォーマンスおよびスケーラビリティをテストするために使用します。理にかなったランダムなメッセージがインライン・サービスに送信され、モデルが学習できます。ロード・ジェネレータを十分な時間実行することによって、モデルの性能を測定できます。
インライン・サービスを構成したら、ロード・ジェネレータを使用し、特定の負荷がある状態で必要なサーバー数を判断するために、サービスの実行状況を評価します。ロード・ジェネレータは多数のスレッドの実行を扱い、複数のスクリプトを並行して実行できるので、サーバーに負荷をかけるとき、通常は1台のクライアント・マシンでロード・ジェネレータを1インスタンス実行するのみで十分です。さらに負荷をかける必要があり、Microsoftのタスク マネージャに、ロード・ジェネレータがすでにクライアントの処理能力の大部分を使用していると表示された場合、ロード・ジェネレータのインスタンスのいくつかを何台かのクライアント・コンピュータで起動し、1台のサーバーをポイントすることができます。理にかなったランダムなメッセージが生成され、セッションのコンテキストで送信されます。サーバーとともに、クライアントがパフォーマンス統計を測定します。
セッションを開始するには、まずスクリプトを新規に作成するか、既存のスクリプトをロードします。「セキュリティ」タブで、有効なユーザー名とパスワードを入力します。次に、「実行」メニューから「実行」オプションを選択するか、ツールバーの「実行」アイコンをクリックします。「一般」タブでは、データ・サンプル間の遅延を変更できます。
「実行」タブには、実行中のセッションのリアルタイム情報が表示されます。表15-1で、「実行」タブのオプションについて説明します。
表15-1ロード・ジェネレータの「実行」タブのオプション
オプション名 | 説明 |
---|---|
新規リクエスト |
前のデータ・サンプルが取得された後にクローズされたリクエストの数。 |
新規エラー |
前のデータ・サンプルが記録された後に、クライアント側とサーバー側いずれかで発生したエラーの数。 |
新規デフォルト・レスポンス |
最後のデータ・サンプル以後、そしてアドバイザのインライン・サービスでデフォルトのレスポンスが定義されて以後、(インフォーマントの統合点リクエストと相対する)アドバイザの統合点リクエストに発生したエラーの数。 |
アクティブ・スクリプト |
このロード・ジェネレータからサーバーに同時に接続しているシミュレートされたユーザーの数。 |
ピーク・レスポンス時間 |
現在のデータ・サンプル中、最も古いリクエストをクローズするまでにかかった時間。 |
リクエスト合計 |
クローズされたリクエストの合計数。 |
エラー合計 |
エラーの合計数。 |
デフォルト・レスポンス合計 |
デフォルトのレスポンスの合計数。 |
終了したスクリプトの合計 |
シミュレートされたユーザーの合計数。 |
平均スクリプト期間 |
開始から終了までの、平均的なスクリプトの実行時間(ミリ秒)。 |
デフォルトでは「リクエスト/秒」グラフが表示されます。「表示」→「グラフ」を選択すると、グラフの表示と非表示を切り替えることができます。グラフのデータをクリアするには、「表示」→「グラフのクリア」を選択するか、ツールバーの「グラフのクリア」アイコンをクリックします。
スクリプトを停止して再開した場合、記録されたデータはすべてクリアされます。ただし、セッションを一時停止して再開した場合は、データはクリアされません。使用可能なグラフは次のとおりです。
平均レスポンス時間: 直近40件の平均レスポンス時間を示すヒストグラム。
エラー: 直近12,000件のデータ・サンプル内で発生したエラーの数を示す折れ線グラフ。
ピーク・レスポンス時間: 直近12,000件の各データ・サンプル内で発生したピーク・レスポンス時間(ミリ秒)を示す折れ線グラフ。
リクエスト/秒: 直近12,000件の各データ・サンプル内で発生した1秒当たりの平均リクエスト数を示す折れ線グラフ。
リクエスト/秒の分布: 直近40件の1秒当たりのリクエスト読取り数を示すヒストグラム。
「一般」タブには、ロード・ジェネレータの構成、タイミング、および、どのインライン・サービスが指定されているかに関する変数が含まれています。「一般」タブには、「ロード・ジェネレータ」、「詳細」、「思考時間」、「スクリプト」および「ロギング」の5つのセクションがあります。
この項には次のトピックが含まれます:
「一般」タブの「ロード・ジェネレータ」セクションには次のオプションがあります。
クライアント構成: サーバーとの通信にロード・ジェネレータが使用するエンドポイントを記述します。
グラフ・リフレッシュ間隔(秒): グラフおよびカウンタの更新間の遅延を設定します。スクリプトがすでに実行中のときに設定を有効にするには、「適用」をクリックします。
「一般」タブの「詳細」セクションには次のオプションがあります。
インライン・サービス: このスクリプトからリクエストが送信されるインライン・サービスの名前。
ランダム数値ジェネレータ・シード: スクリプトにランダムな要素がある場合、これによってランダムな動作をある程度まで再現できます。複数の並行処理スクリプトを実行している場合、ランダムな状態を繰り返すことはできません(第15.5.4項「「スクリプト」セクション」の「実行する同時スクリプトの数」を参照)。
「一般」タブの「思考時間」セクションには次のオプションがあります。
固定グローバル思考時間: シミュレートされたすべてのユーザーがリクエスト間で待機する秒数。
範囲指定されたグローバル思考時間: シミュレートされたユーザーがリクエスト間で待機する可変時間。この思考時間は、ランダムな数字、または設定された数字範囲から順次増分される数字によって変化します。
最小: ゼロ以外の最小待機秒数。
最大: ゼロ以外の最大待機秒数(最小待機秒数より大きい数値であることが必要)。
アクセス・タイプ順次: アクセスのたびに1ずつ増分される思考時間で、最大待機秒数に達すると最小待機秒数にリセットされます。
アクセス・タイプ・ランダム: アクセスのたびに、最小待機秒数と最大待機秒数の間の値を選択します(最小待機秒数と最大待機秒数も選択可)。
「一般」タブの「スクリプト」セクションには次のオプションがあります。
実行する同時スクリプトの数: シミュレート対象となる同時ユーザーの数。
実行するスクリプトの最大数: このフィールドの値が正の場合、その数のセッションの完了後、ロード・ジェネレータの実行は停止します。ゼロは無制限を意味します。
「一般」タブの「ロギング」セクションには次のオプションがあります。
ロギングの有効化: このオプションを選択すると、ロード・ジェネレータの統計データが、定期的にファイルに書き込まれます。
既存のファイルへ追加: ロギングが有効になっているとき、このオプションを選択すると、ログ・ファイルがすでに存在している場合はその最後に新しい統計データが追加され、存在していない場合はファイルが新規に作成されます。
ログ・ファイル: タブ区切りのログ・ファイルへのフルパス。その内容の詳細は、第15.8項「ロード・ジェネレータのCSVログ・ファイルの内容」を参照してください。
ロギング間隔: ログ・ファイルに値が書き込まれてから、次の値セットが書き込まれるまでに待機する秒数。
変数を使用すると、負荷をシミュレートする際に、様々なソースから情報を得ることができます。セッション変数は、セッションごとに1回生成されます。セッション変数は、その後アクセスした際にも同じ値が使用されます。メッセージ変数は、1つのリクエスト内では変わりません。アクセス変数は、読込みのたびに変わる場合があります。変数はメッセージ・アクションで使用されます。
この項には次のトピックが含まれます:
メッセージで変数をメッセージ・パラメータの値に使用する場合(「スクリプトの編集」タブ内)、「変数」列のドロップダウン・リストから選択します。ただし、「値」列で連結文字列値の一部として使用する場合、変数名を中カッコで囲みます(たとえばC001-{customerNum}
)。
注意: 単純に「値」列に |
変数には次の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ディレクトリにあるファイルへの相対参照を示しています。
現実性のある負荷をサーバーに課す複数のクライアントを簡単にシミュレートできるように、メタデータに指定された、ロード・ジェネレータが実行時に解釈するパターンからメッセージを生成できます。このようなアクション・パターンは、「スクリプトの編集」タブで定義します。
このパターンは、メッセージ間の遅延(思考時間)が固定またはランダムになっているメッセージ順序を指定します。また、メッセージ・フィールドの値を生成するパターンもあります。メッセージ・フィールドの値には、オプションでランダムな文字を埋め込んだリテラル文字列を使用することも、フィールドに関連付けられた値セットからランダムに選択した値を使用することもできます。
セッションをサポートしているため、セッション内のメッセージ全体で特定のフィールドを一定にできます。これは、(顧客ID、コールID、口座番号など)セッション・キーの表現に適しています。
このパターンによって、メッセージの順序付けを柔軟なものにできます。たとえば、典型的なセッションで、特定のメッセージが他のメッセージより前にくるようにしたり、ある種類について事前に決定した数のメッセージが生じるようにすることができます。
表15-2は、ロード・ジェネレータの統計を含むカンマ区切り値(CSV)ファイルのフィールドを示しています。
表15-2ロード・ジェネレータのCSVファイルのフィールド
フィールド名 | 説明 |
---|---|
日付/時間 |
カウンタの現在行がファイルに追加された時刻。サーバーのログ・ファイルに格納されているメッセージとの相関関係を高めるため、ミリ秒単位の精度が用意されています。 |
スレッド・プール・サイズ |
スクリプトの実行のために使用中または使用可能なスレッド数。これはほとんどのユーザーには無関係な、実装に関する詳細です。 |
新規リクエスト |
前のデータ・サンプルが取得された後にクローズされたリクエストの数。 |
リクエスト合計 |
クローズされたリクエストの合計数。 |
新規エラー |
前のデータ・サンプルが記録された後に、クライアント側とサーバー側いずれかで発生したエラーの数。 |
エラー合計 |
エラーの合計数。 |
新規デフォルト・レスポンス |
最後のデータ・サンプル以後、そしてアドバイザのインライン・サービスでデフォルトのレスポンスが定義されて以後、(インフォーマントの統合点リクエストと相対する)アドバイザの統合点リクエストに発生したエラーの数。 |
デフォルト・レスポンス合計 |
デフォルトのレスポンスの合計数。 |
アクティブ・スクリプト |
このロード・ジェネレータからサーバーに同時に接続しているシミュレートされたユーザーの数。 |
スクリプト合計 |
シミュレートされたユーザーの合計数。 |
平均レスポンス時間(ms) |
現在のデータ・サンプル中、最も古いリクエストをクローズするまでにかかった平均時間。 |
最大レスポンス時間(ms) |
現在のデータ・サンプル中、最も古いリクエストをクローズするまでにかかった最長時間。 |
平均スクリプト実行時間(ms) |
開始から終了までの、平均的なスクリプトの実行時間(ミリ秒)。 |
スナップショット期間(ms) |
現在のカウンタ値が累積された期間のミリ秒数。 |
この項では、log/loadgen.csv
に書き込まれるロード・ジェネレータのカウンタをレンダリングするための、インストールのetc
ディレクトリに含まれるMicrosoft Excelのファイルlg_perf.xls
の内容について説明します。
最上部のセルA1には、データソースとしてlg_perf.xls
をタブ区切りのカウンタ・ファイルにリンクする方法を記述したコメントがあります。次にその内容を示します。
ロード・ジェネレータのパフォーマンス・ログのパスを指定するには、セルA2にカーソルを置き、「データ」メニューから「外部データの取り込み」→「テキスト ファイルのインポートの編集」を選択し、loadgen構成で指定したパス(通常は{$install_directory}\log\loadgen.csv)に移動します。要求されたらデフォルトの解析設定を使用します。データは、3 分おきに自動的にリフレッシュされます。間隔などの設定を変更するには、「データ」メニューから「外部データの取り込み」→「データ範囲プロパティ」を選択します。
行2には、各カウンタの名前が含まれるヘッダーが表示されます。前述のCSVファイルのすべてのヘッダーがここに表示され、ヘッダーの下に値が表示されます。