ページの先頭行へ戻る
Interstage Application Server V13.1.0 Interstage HTTP Server 2.4運用ガイド
FUJITSU Software

1.3 Webサーバのプロセス構成(Solaris/Linux)

クライアントとの多重接続はプロセス/スレッド多重で実現し、通信プロセス数を自動で拡張/縮退する機能を備えています。
Interstage HTTP Server 2.4のプロセス構成は、環境定義ファイル(httpd.conf)において以下のディレクティブを使用して設定します。


機能概要

ディレクティブ

初期値

Webサーバ起動時の通信プロセス数

StartServers

3

通信プロセス数の上限値(注1)

ServerLimit

- (省略値:16)

クライアント同時接続数(注2)

MaxRequestWorkers

400

待機状態の通信スレッド数の最小値

MinSpareThreads

75

待機状態の通信スレッド数の最大値

MaxSpareThreads

250

1つの通信プロセスにおける通信スレッド数の上限値

ThreadLimit

- (省略値:64)

1つの通信プロセスにおける通信スレッド数

ThreadsPerChild

25

1つの通信プロセスが処理可能な接続数

MaxConnectionsPerChild

0 (注3)

1「MaxRequestWorkers÷ThreadsPerChild」に設定可能な最大値を設定します。剰余がある場合は、切り捨てられます。

2初期設定で最大同時接続数はMaxRequestWorkersの3倍になります。MPMを初期設定であるevent MPMからworker MPM、またはprefork MPMに変更した場合、最大同時接続数はMaxRequestWorkersディレクティブの値となります。MPMの詳細については「Apache HTTP サーバ バージョン 2.4 ドキュメント」を参照してください。

3「0」の場合、プロセスが処理する接続数に制限はありません。


ポイント

上記のディレクティブの設定値は、以下の大小関係を参考にして、指定してください。


ThreadsPerChildThreadLimit大小関係

ThreadsPerChild ≦ ThreadLimit

ThreadsPerChildディレクティブは、ThreadLimitディレクティブを超えないように設定してください。

ThreadsPerChildディレクティブにThreadLimitディレクティブを超える値を設定した場合は、ThreadLimitディレクティブの値に置き換えられます。


StartServersServerLimitMaxRequestWorkersThreadsPerChildの大小関係

StartServers ≦ ( MaxRequestWorkers ÷ ThreadsPerChild ) ≦ ServerLimit

( MaxRequestWorkers ÷ ThreadsPerChild ) は通信プロセス数の最大値です。

( MaxRequestWorkers ÷ ThreadsPerChild ) の値がServerLimitディレクティブの設定値を超える場合は、通信プロセス数の最大値はServerLimitディレクティブの設定値になります。

StartServersディレクティブに( MaxRequestWorkers ÷ ThreadsPerChild )の値を超える値を設定した場合、( MaxRequestWorkers ÷ ThreadsPerChild )の数のプロセスが起動されます。


上記のディレクティブの設定値とプロセス構成の関係について以下に説明します。


■Webサーバ起動時のプロセス構成

Webサーバを起動すると、デーモンプロセスはStartServersディレクティブに設定した数の通信プロセスを生成します。



注)CGIデーモンプロセスは、CGI運用時に生成されます。


通信プロセス数の拡張

クライアントからの接続要求を受け付けた場合、待機状態の通信スレッドは通信状態となります。

待機状態の通信スレッド数がMinSpareThreadsディレクティブの設定値より少ない場合は、MinSpareThreadsディレクティブの設定値以上の数になるように、通信プロセスを新しく生成します。



通信プロセス数の縮退

クライアントとの通信が切断された場合、通信状態の通信スレッドは待機状態となります。

待機状態の通信スレッド数がMaxSpareThreadsディレクティブの設定値を超過した場合は、MaxSpareThreadsディレクティブの設定値以下の数になるように、待機状態の通信プロセスを削除します。



最大多重動作

通信プロセス数が上限値(MaxRequestWorkers÷ThreadsPerChild)に達した場合は、新しい通信プロセスを生成しません。

また、クライアントとの同時接続数()がMaxRequestWorkersディレクティブの設定値に達した場合は、クライアントからの新しいリクエストをオペレーティングシステム内にキューイングします。

接続待ちキュー数は、ListenBacklogディレクティブで最大数を設定します。ただし、オペレーティグシステムの仕様に応じた値が加算されます。

初期設定で最大同時接続数はMaxRequestWorkersの3倍になります。MPMを初期設定であるevent MPMからworker MPM、またはprefork MPMに変更した場合、最大同時接続数はMaxRequestWorkersディレクティブの値となります。MPMの詳細については「Apache HTTP サーバ バージョン 2.4 ドキュメント」を参照してください。


注)α:オペレーティグシステムの仕様に応じた値


■1つの通信プロセスが処理可能な接続

1つの通信プロセスにおいて、プロセス生成後に受け付ける合計の接続数がMaxConnectionsPerChildディレクティブの設定値を超過した場合、新しい通信プロセスを起動します。このとき、古い通信プロセスはクライアントにレスポンス返却・コネクション切断後、終了します。

MaxConnectionsPerChildディレクティブの設定値が[0]の場合、プロセスが処理する接続数に制限はありません。