Apacheのチューニング

元参考データ

<抜粋>
> そこでMaxclientの最大値がいくらまで設定できるかが知りたいと思います。
> これはあくまで理論値です。
> 確かApache1.3.xのときは最大値256までと記憶しているのですが
> Apache2からは最大値がどこまでかがわかりません。

ソースコードを変更してもよいなら、理論値はおそらく使われてい
る型の大きさによる (多分他の OS の制限の方が先に利くでしょう
が) と思います。

変更しないなら、prefork MPM だと 20000 までのようです。
http://httpd.apache.org/docs-2.0/mod/mpm_common.html#maxclients
http://httpd.apache.org/docs-2.0/mod/mpm_common.html#serverlimit

worker はドキュメンテーションからではよくわかりません。ソー
スコードをちらっと見たところ ServerLimit が 20000 で、
ThreadsPerChilds 20000 のようなので、20000 * 20000 のように
見えます。
</抜粋>

デフォルト設定と意味

StartServers 5
起動時に生成される子サーバプロセスの数
MinSpareServers 5
アイドルな子サーバプロセスの希望最小個数。これより少ない数になると、一秒につき一個の割合で子プロセスを作成しリクエストに備える。
なお、この値を増やすのはよほど混雑した場合が望ましいとApacheコミュニティから指示がなされている。
MaxSpareServers 10
リクエストに応答するために作成される子プロセスの最大個数。preforkの場合、正しくプロセス個数=同時リクエスト個数なので、その数だけ設定しなくてはならない。最大値は 256 で、これを越える時は ServerLimit ディレクティブを書き上限数を指定する。ServerLimit のソースコード上の臨界値は 20000 である。
MaxClients 20
応答することのできる同時リクエスト数。最大 256 で、
MaxRequestsPerChild 0
個々の子サーバが稼働中に扱うリクエスト数の上限。0は無制限。設定した場合、n個のリクエストを受け付けた後に子プロセスは終了する。上限値は 10000

参考値

参考データから得たものだと、このあたり。 MaxClientsは増やしすぎると負荷に響くと警告しています。PHPを動かすのに結構マシンパワーを食うはずなので、これは確かによくない。

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

StartServers 32
MinSpareServers 64
MaxSpareServers 128
MaxClients 256
MaxRequestsPerChild 10000

参考データ

http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?communityid=otn-141437&bbsid=1&no=3973&view=8
URLがすごいが気にしないで
http://blog.livedoor.jp/goki_/archives/28288859.html
2ちゃんねる系の画像アップローダ関係者のネタ。結構大負荷系。