この項には次のトピックが含まれます:
HTTP 1.0およびHTTP 1.1は、単一のHTTP接続での複数のリクエストの送信をサポートしています。HTTP 1.0ではキープ・アライブと呼ばれていたこの機能は、HTTP 1.1では永続接続と呼ばれ、Oracle Traffic Directorではデフォルトで有効化されています。
元のリクエストを処理した後も接続をアクティブのまま保持することで、その後の類似したリクエストに対するTCP接続の作成およびクローズに関連する時間およびオーバーヘッドを削減できます。ただし、受信するリクエストが少ない、またはない場合、キープ・アライブ接続はシステムに対して不要な負荷となります。
図15-2は、キープ・アライブが有効化されている場合の接続処理を示しています。
この問題を回避するために、待機中のキープ・アライブ接続の最大数を指定できます。キープ・アライブ・リクエストが受信されたとき、リクエスト待機中のオープン接続が、指定した最大数を超えて存在する場合、最も古い接続はクローズされます。また、一定期間非アクティブであるキープ・アライブ接続をクローズする場合のその期間を指定できます。
プレーンテキストperfdump
レポートには、次の例に示すように、現在のキープ・アライブ設定およびメトリックが示されます。
KeepAliveInfo: -------------------- KeepAliveCount 26/60000 KeepAliveHits 154574634 KeepAliveFlushes 0 KeepAliveRefusals 0 KeepAliveTimeouts 5921 KeepAliveTimeout 120 seconds
perdump
レポートのKeepAliveInfo
セクションには、次のように表示されます。
KeepAliveCount
:
最初の数値は、キープ・アライブ・モードの接続数です。
2番目の数値は、許可されている最大キープ・アライブ接続数です。
KeepAliveHits
は、キープ・アライブ状態の接続で正常に受信されたリクエスト数です。
KeepAliveHits
が、KeepAliveFlushes
と比較して高い場合、キープ・アライブ接続が十分に利用されていることを示します。
KeepAliveHits
が低い場合、大量のキープ・アライブ接続がアイドル状態のままであり、システム・リソースが不必要に消費されていることを示します。この状況に対応するには、次の方法があります。
キープ・アライブ状態の接続数を少なくするために、キープ・アライブ接続の最大数を減らします。
最大接続数設定で指定された接続数は、キープ・アライブ・スレッド間で均等に分配されることに注意してください。最大接続数設定がキープ・アライブ・スレッド設定で均等に分配されていない場合、サーバーではキープ・アライブ接続の最大数を少し上回る数が許可されます。
キープ・アライブ接続が長時間アイドル状態のままとならないように、KeepAliveTimeout
を短くします。KeepAliveTimeout
の値が非常に小さい場合、新規TCP接続の設定におけるオーバーヘッドが増加することに注意してください。
KeepAliveFlushes
は、クライアントがキープ・アライブをリクエストした接続をサーバーがクローズした回数です。
キープ・アライブ・フラッシュを減らすには、キープ・アライブ最大接続数を増やします。
注意: UNIX/Linuxシステムで、キープ・アライブ最大接続数が非常に大きく設定されている場合、サーバーのオープン・ファイル・ディスクリプタが不足する場合があります。一般的に、1024がUNIX/Linuxでのオープン・ファイル数の制限であるため、キープ・アライブの最大接続数を500よりも増やすことはお薦めしません。かわりに、15.2項「ファイル・ディスクリプタ制限のチューニング」の説明に従い、ファイル・ディスクリプタ制限を増やすことができます。 |
KeepAliveRefusals
は、考えられる理由の1つとしてKeepAliveCount
がキープ・アライブ最大接続数を超えたために、サーバーが接続をキープ・アライブ・スレッドに渡すことができなかった回数です。この値が大きい場合、キープ・アライブ接続の最大数を増やすことを検討してください。
KeepAliveTimeouts
は、前回のKeepAliveTimeout
期間中に、キープ・アライブ接続でリクエストが受信されなかったため、アイドル状態のキープ・アライブ接続がクローズされた回数です。
KeepAliveTimeout
は、アイドル状態のキープ・アライブ接続がクローズされるまでの秒単位での期間です。
構成可能でパフォーマンスに影響を及ぼすが、perfdump
レポートには表示されない、もう1つのパラメータとして、キープ・アライブ・ポーリング間隔がありますが、これはKeepAliveTimeout
とともに、待機時間およびスループットを制御します。ポーリング間隔およびタイムアウト期間を短くすると、負荷の小さいシステムの待機時間が短くなります。これらの設定の値を大きくすると、負荷の大きいシステムの集約スループットが向上します。ただし、待機時間が長く、クライアント数が少なすぎる場合、サーバーが不必要にアイドル状態のままとなるため集約スループットに悪影響が出ます。したがって、一定の負荷で、アイドルのCPU時間がある場合ポーリング間隔を短くし、アイドル状態のCPU時間がない場合ポーリング間隔を長くします。
管理コンソールまたはCLIのいずれかを使用して、キープ・アライブ設定をチューニングできます。
管理コンソールを使用したキープ・アライブ設定の変更
管理コンソールを使用してキープ・アライブ設定を変更するには、次の操作を行います。
2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。
ページの左上隅にある「構成」ボタンをクリックします。
使用可能な構成のリストが表示されます。
変更する構成を選択します。
ナビゲーション・ペインで、「詳細設定」を展開し、HTTPを選択します。
「HTTP設定」ページが表示されます。
ページの「キープ・アライブ」セクションに移動します。
変更するパラメータを指定します。
画面上のヘルプおよびプロンプトがすべてのパラメータに提供されています。
フィールドの値を変更する、または変更したテキスト・フィールドからタブアウトすると、ページの右上隅にある「保存」ボタンが有効になります。
「リセット」ボタンをクリックすることで、いつでも変更を破棄できます。
必要な変更を行った後、「保存」をクリックします。
更新された構成が保存されたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。
さらに、「デプロイメント保留中」メッセージが、メイン・ペインの上部に表示されます。4.3項「構成のデプロイ」の説明に従い、「変更のデプロイ」をクリックして更新された構成を即座にデプロイすることも、さらに変更を行いその後でデプロイすることもできます。
CLIを使用したキープ・アライブ設定の変更
現在のキープ・アライブ設定を表示するには、次の例に示すようにget-keep-alive-prop
コマンドを実行します。
tadm> get-keep-alive-prop --config=soa
enabled=true
threads=20
max-connections=2000
poll-interval=0.002
timeout=31
キープ・アライブ設定を変更するには、set-keep-alive-prop
コマンドを実行します。
たとえば、キープ・アライブ接続の最大数を変更するには、次のコマンドを実行します。
tadm> set-keep-alive-prop --config=soa max-connections=2000OTD-70201 Command 'set-keep-alive-prop' ran successfully.
更新された構成を有効にするには、deploy-config
コマンドを使用して、構成をOracle Traffic Directorインスタンスにデプロイします。
この項で説明されたCLIコマンドの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--help
オプションを付けてコマンドを実行してください。