Sun Java System Application Server Enterprise Edition 8.2 パフォーマンスチューニングガイド

要求処理

「HTTP サービス」ページの「要求処理」タブで、次の HTTP 要求処理設定を調整します。

スレッド数

「スレッド数」パラメータは、サーバーが処理できる同時要求の最大数を指定します。デフォルト値は 128 です。サーバーは、この要求スレッドの制限に達すると、アクティブ要求数がこの最大数を下回るまで、新しい要求の処理を遅らせます。この値を増やすと、HTTP 応答の待ち時間が短縮されます。

実際には、クライアントがサーバーに接続したあと、要求を完了しないことが頻繁に発生します。それらの場合、サーバーは、「要求タイムアウト」パラメータに指定された時間だけ待ちます。

また、一部のサイトでは、完了までに数分かかる高負荷のトランザクションが実行されます。これらの要因はどちらも、必要とされる最大同時要求数を押し上げます。多くの秒数のかかる要求を多数処理するサイトでは、最大同時要求数を増やさなければいけない可能性があります。

負荷と平均的な要求の処理時間に基づいて、スレッド数の値を調整します。一般に、アイドル CPU 時間と保留中の要求が存在している場合はこの数値を増やし、CPU が過負荷状態になっている場合はこの数値を減らします。HTTP 1.0 クライアント (または接続解除を頻繁に行う HTTP 1.1 クライアント) が多数存在している場合には、タイムアウト値を調整することで、接続を開いたままにしておく時間を短くします。

適切な要求スレッド数の値の範囲は、負荷によって 100 〜 500 になります。システムに余分な CPU サイクルが存在する場合には、スレッド数を段階的に増やしていき、増やすたびにパフォーマンスを監視します。パフォーマンスが飽和したら (改善しなくなったら)、スレッド数を増やすのをやめます。

初期スレッド数

「初期スレッド数」プロパティーは、サーバーが起動時に開始するスレッドの最小数を指定します。デフォルト値は 48 です。「初期スレッド数」は同時に実行可能なアクティブスレッドの最大数に対する強い制限値を表しますが、これがパフォーマンス上の障害になる可能性があります。

要求タイムアウト

「要求タイムアウト」プロパティーは、サーバーがあるクライアントへの接続を受け付けてからそのクライアントから情報を受け取るまでに待機する秒数を指定します。デフォルト設定は 30 秒です。ほとんどの状況下では、この設定を変更する必要はありません。これをデフォルトの 30 秒よりも小さい値に設定すると、スレッドをより早く解放できます。これをデフォルトの 30 秒よりも小さい値に設定すると、スレッドをより早く解放できる場合もあります。ただし、低速な接続のユーザーも切断してしまいます。

バッファー長

個々の要求処理スレッドがクライアントからの要求データを読み込むために使用するバッファーのサイズ (バイト)。

要求の実際のサイズに基づいてこの値を調整し、そのパフォーマンスへの影響を監視してください。ほとんどの場合はデフォルトで十分なはずです。要求のサイズが大きい場合はこのパラメータを増やしてください。