Cosminexus 機能解説
ここでは,Webクライアントからの接続数の制御と,リクエスト処理スレッド数の制御について説明します。
インプロセスHTTPサーバでは,一度に接続できるWebクライアントの数を設定することで,インプロセスHTTPサーバで作成するリクエスト処理スレッド数を制御できます。また,処理を実行していないリクエスト処理スレッドを予備スレッドとして一定数プールしておくことで,リクエスト処理スレッドの追加・削除に掛かる処理を最小限に抑えられます。
このように,Webクライアントからの接続数とリクエスト処理スレッド数を制御して,リクエスト処理スレッド数を最適化することによって,J2EEサーバの負荷を一定に抑え,安定した高いスループットを維持できます。
Webクライアントからの接続数の制御とリクエスト処理スレッド数の制御について説明します。
インプロセスHTTPサーバでは,一度に接続するWebクライアントやプロキシサーバの数の最大値を設定して,リクエスト処理スレッド数を制御します。インプロセスHTTPサーバではWebクライアントからの接続数分のリクエスト処理スレッドを作成するため,Webクライアントからの接続数の最大値は,インプロセスHTTPサーバで作成するリクエスト処理スレッド数の上限となります。
なお,クライアントからの接続要求は,TCP/IPのListenキューに登録されて,リクエスト処理スレッドに渡されます。接続数の上限を超えたクライアントからの接続要求は,Listenキューに蓄えられます。Listenキューに蓄えられたクライアントからの接続要求が指定した最大値を超えた場合,クライアントはサーバへの接続に失敗します。
Webクライアントからの接続数の制御の概要を次の図に示します。
図4-1 Webクライアントからの接続数の制御の概要
インプロセスHTTPサーバでは,起動時にリクエスト処理スレッドを作成したあと,リクエスト処理スレッドの状態,およびスレッド数を定期的に監視します。インプロセスHTTPサーバにリクエストが集中している場合は,リクエスト処理スレッドを追加して十分な予備スレッドをプールしておき,リクエストが少ない場合は余分にプールしている予備スレッドを削除します。
リクエスト処理スレッド数の制御は次のように実行します。
リクエスト処理スレッド数の遷移について,例を使用して説明します。
図4-2 リクエスト処理スレッド数の遷移例
図中の項番1〜7について説明します。図4-3 予備スレッドの最大値をWebクライアントからの接続数の最大値と同じ値にした場合のリクエスト処理スレッド数の遷移例
図中の項番1〜7について説明します。図4-4 J2EEサーバ起動時に作成したスレッドを維持する場合のリクエスト処理スレッド数の遷移例
図中の項番1〜8について説明します。All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.