Sun Java System Portal Server 7.1 配備計画ガイド

スレッドプール

Java 仮想マシン (JVM) は、多数のスレッドの同時実行をサポートしています。パフォーマンスに役立つように、Access Manger と Portal Server は、1 つまたは複数のスレッドプールを維持します。スレッドプールを使用して、特定のタスクに割り当てられるスレッドの合計数を制限できます。上記の perftune の出力で、チューニングパラメータ callerPool の例を確認できます。ブラウザから Web コンテナに要求が渡されると、その要求は、複数のスレッドプールを通過します。スレッドプールには、一連の WorkerThread オブジェクトが含まれています。これらのオブジェクトは、プールを構成している個々のスレッドです。WorkerThread オブジェクトは、作業を受け取ると動作を開始および停止します。存在する WorkerThread 以上の作業が発生した場合、WorkerThread が解放されるまで、作業は保留されます。スレッドプールに割り当てられたスレッドが不足している場合、検出しにくいボトルネックが、システムで発生する場合があります。スレッドプールに割り当てられたスレッドが多すぎる場合も、望ましくはありませんが、重大な問題にはなりません。

RqThrottleRqThrottle パラメータは、現在の Java Enterprise System Web コンテナが処理できる同時トランザクションの最大数を指定します。同時トランザクションの最大数は、スレッド数の上限と見なされます。

低メモリー状況 — Web コンテナを低メモリー状況で動作させる必要がある場合は、RqThrottle の値を小さくして、スレッド数の上限を最小限にまで減らします。また、 MaxProcs の値を小さくして、プロセスの最大数を減らすこともできます。Java Enterprise System Web Server では、通常、この値は 1 になります。

抑制されたサーバー — サーバーは、スレッド数の上限値を超える数のアクティブスレッドを許可しません。同時要求の数がその制限に達すると、古い接続が解放されるまで、サーバーは新しい接続の処理を停止します。古い接続の解放を待つため、応答時間が増加します。Sun Java Enterprise System の Web コンテナでは、サーバーの RqThrottle のデフォルト値は 128 です。サーバーで、さらに多くの要求を並行して処理する場合は、RqThrottle の値を大きくしてください。抑制されたサーバーの場合、その症状は応答時間が長くなることです。ブラウザから要求を送信した場合、通常、サーバーとの接続は迅速に確立されますが、抑制されたサーバーでは、クライアントに応答が戻るまでに長い時間がかかります。サーバーが抑制されているかどうかを判断する最適な方法は、アクティブセッションの数が RqThrottle で設定されている最大数に近いか、または等しくなっているかを確認することです。