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

子プロセスで生成されるスレッド数。
ThreadLimit以下の値を設定します。

25

StartServers

起動初期化時のプロセス数。

2

MinSpareThreads

アイドル状態でのスレッド総数の最小数。

25

MaxSpareThreads

アイドル状態でのスレッド総数の最大数。

75

MaxRequestsPerChild

子プロセスが処理するリクエストの最大総数。本指定数のリクエストを受信すると子プロセスは終了します。0を指定すると子プロセスは動作し続けます。

0

ServerLimit

子プロセスの上限値。20000まで指定可能。

16

ThreadLimit

子プロセスで動作するスレッド数の上限値。
15000まで指定可能。

64

各指示子の詳細については、以下を参照してください。

http://httpd.apache.org/docs/2.0/mod/worker.html

Windows

指示子

説明

既定値

ThreadsPerChild

最大同時リクエスト処理数。子プロセスで動作するスレッドの総数。4096まで指定可能。

50 (1.3)
250 (2.0)

MaxRequestsPerChild

子プロセスが処理するリクエストの最大総数。本指定数のリクエストを受信すると子プロセスは終了します。0を指定すると子プロセスは動作し続けます。

0

各指示子の詳細については、以下を参照してください。

http://httpd.apache.org/docs/2.0/mod/mpm_winnt.html