Solaris/Linuxシステムでは、クライアントとの多重接続はプロセス多重で実現し、通信プロセス数を自動で拡張/縮退する機能を備えています。
Interstage HTTP Serverのプロセス構成に関連する設定は、環境定義ファイル(httpd.conf)において、以下のディレクティブを使用して行います。
機能概要 | ディレクティブ | 初期値 |
---|---|---|
Interstage HTTP Server起動時の通信プロセス数 | 5 | |
待機状態の通信プロセス数の最小値 | 5 | |
待機状態の通信プロセス数の最大値 | 10 | |
クライアントの同時接続数 | 50 | |
1つの通信プロセスが処理可能なリクエスト数 | 0 | |
クライアントの同時接続数の上限値 | - (省略値:256) |
各ディレクティブに指定する数値は、以下の大小関係を基本に設定してください。
MaxClients ≧ MaxSpareServers ≧ StartServers ≧ MinSpareServers |
上記のディレクティブの設定値とプロセス構成の関係について以下に説明します。
待機状態の通信プロセスがクライアントからの接続要求を受け付けた場合、その通信プロセスは通信状態となり、待機状態の通信プロセスが1つ減ることになります。待機状態の通信プロセス数がMinSpareServersディレクティブに指定した数値より少ない場合は、MinSpareServersディレクティブに指定した数値となるように通信プロセスを新しく生成します。
クライアントとの通信を切断することにより、その通信プロセスは待機状態となり、待機状態の通信プロセスが1つ増えることになります。
待機状態の通信プロセス数がMaxSpareServersディレクティブで指定した数値を超過した場合、MaxSpareServersディレクティブで指定した数値となるよう待機状態の通信プロセスを削除します。
通信プロセス数がMaxClientsで指定した数値に達した場合、新しい通信プロセスは生成しません。
また、クライアントとの同時接続数がMaxClientsで指定した数値に達した場合、クライアントからの新しいリクエストはオペレーティングシステム内にキューイングされます。なお、キューイングの最大数は、ListenBacklogディレクティブを使用して設定します。
(5) 1つの通信プロセスが処理可能なリクエスト数について
1つの通信プロセスにおいて、プロセス生成後に受け付けるリクエストの合計がMaxRequestsPerChildディレクティブに指定した数値を超過した場合に、その通信プロセスを再起動します。このとき、通信プロセスがクライアントに応答を返し、通信を切断した後に、その通信プロセスは自ら終了します。