この項には次のトピックが含まれます:
クライアントがOracle Traffic DirectorインスタンスのHTTPリスナーにリクエストを送信すると、接続はHTTPリスナーに関連付けられているアクセプタ・スレッドによってまず受け入れられます。アクセプタ・スレッドは、接続を接続キューに入れ、次のクライアント・リクエストを待機します。スレッド・プールのリクエスト処理スレッドは、接続キューから接続を取得し、リクエストを処理します。接続プールが無効化されている場合、アクセプタ・スレッド自体によって各リクエストが処理されることに注意してください。接続キューおよびリクエスト処理スレッドは存在しません。
図15-1は、接続処理を示しています。
Oracle Traffic Directorインスタンスは、起動時に、各リスナー、および指定された最小リクエスト処理スレッド数を含むスレッド・プールについて、指定された数のアクセプタ・スレッドを作成します。
リスナーのアクセプタ・スレッド数が指定されていない場合、Oracle Traffic Directorではホスト上のCPUごとに1つのアクセプタ・スレッドが作成されます。
スレッド・プールの最小サイズが指定されていない場合、Oracle Traffic Directorでは、インスタンスが実行されているホスト上のプロセッサごとに1つのリクエスト処理スレッドが作成されます。
リクエスト・ロードが増加すると、Oracle Traffic Directorは、接続キューのリクエスト数をリクエスト処理スレッド数と比較します。キュー内のリクエスト数が、リクエスト処理スレッド数よりも多い場合、Oracle Traffic Directorはスレッド・プールの指定最大サイズまで、スレッドを追加作成します。
最大リクエスト処理スレッド数のデフォルト値が、プロセスで利用できる最大ファイル・ディスクリプタ数の4分の1を上回ることはありません。1、2個のCPUがある場合のデフォルトは256で、3、4個のCPUがある場合のデフォルトは512です。CPUが4個より多い場合のデフォルトは1024です。
スレッドの最大数は、同時に実行可能なセッション数のハード・リミットです。最大スレッド制限は、インスタンス内のすべての仮想サーバーにわたって適用されます。
プレーンテキストperfdump
レポートのSessionCreationInfo
セクションで、インスタンスのスレッド・プール情報を、次の例に示すように確認できます。
SessionCreationInfo: ------------------------ Active Sessions 2187 Keep-Alive Sessions 0 Total Sessions Created 4016/4016
Active Sessions
は、現在リクエストを処理しているリクエスト処理スレッドの数です。
Keep-Alive Sessions
は、レスポンスを処理しているキープ・アライブ・スレッドの数です。
Total Sessions Created
最初の数値は、作成されたリクエスト処理スレッド数です。
2番目の数値は、スレッド・プールに許可されている最大スレッド数で、スレッド・プールに構成されている最大スレッドおよびキープ・アライブ・スレッド数の合計です。
作成したリクエスト処理スレッドの合計数が、最大スレッド数に常に近い場合、スレッド制限を増やすことを検討してください。そうしないと、接続キューでのリクエストの待機時間が長くなる場合があり、接続キューが一杯になった場合は、その後のリクエストは受け入れられなくなります。平均キューイング遅延(15.3.3項を参照)が、平均レスポンス時間と比較して著しく大きい場合も、スレッド制限数を増やす必要があることを意味します。
接続キューの最大サイズが十分ではない場合、クライアント・リクエストは、ロードがピークの時間帯は却下される可能性があります。perfdump
プレーンテキスト・レポートの接続キュー・セクションを調べることで、次の例に示すようにこの状況を検出できます。
ConnectionQueue: ----------------------------------------- Current/Peak/Limit Queue Length 0/1853/160032 Total Connections Queued 11222922 Average Queue Length (1, 5, 15 minutes) 90.35, 89.64, 54.02 Average Queueing Delay 4.80 milliseconds
Current/Peak/Limit Queue Length
行には、次の項目が示されます。
Current
: 現在キュー内にある接続数。
Peak
: キューに同時に存在できる最大接続数。
ピークのキューの長さが制限に近い場合、接続キューのサイズが、ロードに対して十分ではないことを意味します。
Limit
: 接続キューの最大サイズであり、スレッド・プール・キュー、最大スレッド数およびキープ・アライブ・キューのサイズの合計となります。
Total Connections Queued
は、接続がキューに入れられた合計回数です。この数値には、新たに受け入れられた接続およびキープ・アライブ・システムからの接続も含まれます。
Average Queue Length
は、直近の1分、5分および15分のそれぞれの間隔でのキュー内の平均接続数です。
Average Queueing Delay
は、接続キュー内の接続がキュー内に留まった平均時間です。これは、リクエストがサーバーによって受け入れられた時点と、このリクエストの処理がリクエスト処理スレッドによって開始された時点の間の遅延時間を表します。平均キューイング遅延が、平均レスポンス時間と比較して相対的に大きい場合、スレッド・プール内のスレッド数を増やすことを検討してください。
管理コンソールまたはCLIのいずれかを使用して、スレッド・プールおよび接続キュー設定を変更できます。
管理コンソールを使用したスレッド・プールおよび接続キュー設定の変更
管理コンソールを使用してスレッド・プール設定を変更するには、次の操作を行います。
2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。
ページの左上隅にある「構成」ボタンをクリックします。
使用可能な構成のリストが表示されます。
変更する構成を選択します。
ナビゲーション・ペインで、「詳細設定」を展開し、HTTPを選択します。
「HTTP設定」ページが表示されます。
ページの「スレッド・プール」セクションに移動します。
変更するパラメータを指定します。
画面上のヘルプおよびプロンプトがすべてのパラメータに提供されています。
フィールドの値を変更する、または変更したテキスト・フィールドからタブアウトすると、ページの右上隅にある「保存」ボタンが有効になります。
「リセット」ボタンをクリックすることで、いつでも変更を破棄できます。
必要な変更を行った後、「保存」をクリックします。
更新された構成が保存されたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。
さらに、「デプロイメント保留中」メッセージが、メイン・ペインの上部に表示されます。4.3項「構成のデプロイ」の説明に従い、「変更のデプロイ」をクリックして更新された構成を即座にデプロイすることも、さらに変更を行いその後でデプロイすることもできます。
CLIを使用したスレッド・プールおよび接続キュー設定の変更
現在のスレッド・プール設定を表示するには、次の例に示すようにget-thread-pool-prop
コマンドを実行します。
tadm> get-thread-pool-prop --config=soa
enabled=true
stack-size=262145
max-threads=20480
queue-size=2000
min-threads=20480
スレッド・プール設定を変更するには、set-thread-pool-prop
コマンドを実行します。
たとえば、接続キュー・サイズを変更するには、次のコマンドを実行します。
tadm> set-thread-pool-prop --config=soa queue-size=2000OTD-70201 Command 'set-thread-pool-prop' ran successfully.
更新された構成を有効にするには、deploy-config
コマンドを使用して、構成をOracle Traffic Directorインスタンスにデプロイします。
この項で説明されたCLIコマンドの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--help
オプションを付けてコマンドを実行してください。