====== preforkのチューニング ====== ===== サンプル ===== ==== 標準の値 ==== StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 ==== チューニングサンプル(その1) ==== StartServers 8 MinSpareServers 5 MaxSpareServers 30 ServerLimit 300 MaxClients 300 MaxRequestsPerChild 50 ==== チューニングサンプル(その2) ==== ServerLimit 340 MaxClients 340 StartServers 15 MinSpareServers 5 MaxSpareServers 10 MaxRequestsPerChild 10000 ===== 各々設定の内容 ===== ==== StartServers ==== http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html#startservers Apache起動時のサーバプロセスの数。MinSpareServers と同一の値を設定する。 MinSpareServers/MaxSpareServersの値に応じて動的に調整されるため、デフォルトの5~10の値で十分です。 StartServersの値を増やすと、Apacheの起動時間が長くなりサービスのダウンタイムが大きくなります。 ==== MaxSpareServers ==== http://httpd.apache.org/docs/2.2/ja/mod/prefork.html#maxspareservers 待機させておくhttpdの最大数。Apacheは定期的に監視してこの値を上回っていた場合は自動的にhttpdを停止する。 過度な待機プロセスが発生しないように、MinSpareServers < MaxSpareServers。 MaxClientsの値まで上げることもできますが、待機プロセスで無駄にサーバのリソースを浪費する可能性もある。 ==== MaxClients ==== http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html#maxclients MaxClients * Apacheの1プロセスが使用するメモリ < 使用可能なメモリ 使用可能なメモリを計算するのは複雑なので、OSメモリの90%位を目安にしてます。 ServerLimitより大きな値を設定することはできません。 値を上げる際は併せてServerLimitも変更する必要があります。 ==== ServerLimit ==== http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html#serverlimit デフォルトのままコンパイルしたApache 2.2.xではServerLimitの上限は20000です。 MaxClients を 256 (デフォルト) よりも大きな値に設定する必要がある時にだけ使用してください。 希望の MaxClients 数とくらべて、必要以上に大きな値を指定することは避けてください。 ==== MaxRequestsPerChild ==== http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html#maxrequestsperchild 使い回しているプロセスを定期的に再起動させる値を設定する。 指定が「0」の場合は無制限を意味し、プロセスの再起動は行われません。 プロセスを再起動させることで、メモリリークを防いだり、コンテンツの不具合が改善されることがあります。 なるべく「5000」や「6000」といった大きな値を設定します。 が、プロセスの再起動に引っ張られてサーバのパフォーマンスやクライアントへのレスポンスが低下することもあるので、不用意に値を設定しないほうがよいです。