| 3. Webサーバ(Apache)のチューニング |
全 Editonにおける Webサーバ(Apache) のチューニングについて説明します。
| 3.1. リクエスト処理 |
Webサーバ(Apache)は、親プロセスと複数の子プロセスで構成されます。ブラウザから受信したリクエストは、子プロセスに割り当てられて、リクエスト処理を実行します。
Apacheのバージョンやプラットフォームにより、子プロセスでのリクエストの処理方法が異なります。
UNIXの場合かつ Apache1.3 の場合、リクエストを受ける度に子プロセスが起動し、1つの子プロセスで1つのリクエストを処理します。子プロセスの数は受け付けたリクエスト数により増減します。
UNIXの場合かつ Apache2.0 の場合、マルチスレッド動作をする子プロセスが複数個起動し、子プロセス内の1スレッドで1つのリクエストを処理します。子プロセスの数は受け付けたリクエスト数により増減します。
Windows の場合、マルチスレッド動作をする子プロセスが1個起動し、子プロセス内の1スレッドで1つのリクエストを処理します。子プロセスの数は受け付けているリクエスト数に関係なく常に1固定です。
| 3.1.1. 最大同時リクエスト処理数 |
Webサーバが同時に処理できるリクエストの数を変更するには、最大同時リクエスト数の値を変更します。${INSTANCE_ROOT}/config/WebServer/httpd.conf を変更します。
UNIX
MaxClients 150 |
Windows
ThreadsPerChild 250 |
※本設定値に大きな値を設定すると、その分メモリ等のシステム資源が必要になりますので、値を変更する際には十分注意してください。
| 3.1.2. その他の設定項目 |
Webサーバのリクエスト処理数に関係するその他の設定項目は以下のとおりです。システム要件に合わせて各値を調整します。${INSTANCE_ROOT}/config/WebServer/httpd.conf を変更します。
UNIX: Apache1.3
指示子 |
説明 |
既定値 |
MaxClines |
最大同時リクエスト処理数。同時に起動する最大子プロセス数。4096まで指定可能。 |
150 |
StartServers |
Webサーバ起動初期化時の子プロセス数。 |
5 |
MinSpareServers |
アイドル状態での子プロセスの最小数。 |
5 |
MaxSpareServers |
アイドル状態での子プロセスの最大数。 |
10 |
MaxRequestsPerChild |
子プロセスが処理するリクエストの最大総数。本指定数のリクエストを受信すると子プロセスは終了します。0を指定すると子プロセスは動作し続けます。 |
0 |
各指示子の詳細については、以下を参照してください。
http://httpd.apache.org/docs/1.3/server-wide.html#process
UNIX: Apache2.0
指示子 |
説明 |
既定値 |
MaxClients |
最大同時リクエスト処理数。子プロセスで動作するスレッドの総数。本値を変更する場合には、ThreadsPerChild/ServerLimit/ThreadLimitの各値を調整します。 |
150 |
ThreadsPerChild |
子プロセスで生成されるスレッド数。 |
25 |
StartServers |
起動初期化時のプロセス数。 |
2 |
MinSpareThreads |
アイドル状態でのスレッド総数の最小数。 |
25 |
MaxSpareThreads |
アイドル状態でのスレッド総数の最大数。 |
75 |
MaxRequestsPerChild |
子プロセスが処理するリクエストの最大総数。本指定数のリクエストを受信すると子プロセスは終了します。0を指定すると子プロセスは動作し続けます。 |
0 |
ServerLimit |
子プロセスの上限値。20000まで指定可能。 |
16 |
ThreadLimit |
子プロセスで動作するスレッド数の上限値。 |
64 |
各指示子の詳細については、以下を参照してください。
http://httpd.apache.org/docs/2.0/mod/worker.html
Windows
指示子 |
説明 |
既定値 |
ThreadsPerChild |
最大同時リクエスト処理数。子プロセスで動作するスレッドの総数。4096まで指定可能。 |
50 (1.3) |
MaxRequestsPerChild |
子プロセスが処理するリクエストの最大総数。本指定数のリクエストを受信すると子プロセスは終了します。0を指定すると子プロセスは動作し続けます。 |
0 |
各指示子の詳細については、以下を参照してください。
http://httpd.apache.org/docs/2.0/mod/mpm_winnt.html