Apacheチューニング MaxClientsの適正値
「最低限やっておくといいApacheチューニング」で説明を省いたMaxClientsの適正値(preforkを対象)について書きたいと思います。
まずは、MaxClientsの適正値を考えるために必要となる各情報を調べます。
総メモリ量とシステム全体の消費メモリ量をチェック
$ free -m
上記コマンドを実行した時の「Mem:」のtotalが総メモリ量、「-/+ buffers/cache:」のusedがシステム全体の消費メモリ量となります。システム高速化のために確保されているbuffersとcacheは除外して考えてよいため、消費メモリは「Mem:」でなく、「-/+ buffers/cache:」の方を参照します。
減り続けるメモリ残量! 果たしてその原因は!? - @IT
Apache 1プロセスあたりの消費メモリ量をチェック
$ ps -ylC httpd --sort:rss
上記コマンドを実行した時のRSSが各Apacheプロセスの消費メモリ量(KB)となります。プロセスごとにバラつきがあるので、平均値を算出します。
MaxClientsに設定してもいい最大値を算出
ここまで調べた情報をもとにMaxClientsに設定してもいい最大値を算出します。計算式は以下のとおりです。
MaxClients最大値 = (総メモリ量 - システム全体の消費メモリ量)/(Apache 1プロセスあたりの消費メモリ量)
例えば、総メモリ量が「1002MB」、システム全体の消費メモリ量が「164MB」、Apache 1プロセスあたりの消費メモリ量が「10MB」であれば、MaxClientsに設定してもいい最大値は「83」となります。この場合、少し余裕を見て50〜70で設定するとよいかと思います。
その他、StartServersなどの数値はとりあえず標準のままでも構いません。MaxRequestsPerChildだけは1000くらいにした方がいいかもです。
まずは、MaxClientsの適正値を考えるために必要となる各情報を調べます。
総メモリ量とシステム全体の消費メモリ量をチェック
$ free -m
上記コマンドを実行した時の「Mem:」のtotalが総メモリ量、「-/+ buffers/cache:」のusedがシステム全体の消費メモリ量となります。システム高速化のために確保されているbuffersとcacheは除外して考えてよいため、消費メモリは「Mem:」でなく、「-/+ buffers/cache:」の方を参照します。
減り続けるメモリ残量! 果たしてその原因は!? - @IT
Apache 1プロセスあたりの消費メモリ量をチェック
$ ps -ylC httpd --sort:rss
上記コマンドを実行した時のRSSが各Apacheプロセスの消費メモリ量(KB)となります。プロセスごとにバラつきがあるので、平均値を算出します。
MaxClientsに設定してもいい最大値を算出
ここまで調べた情報をもとにMaxClientsに設定してもいい最大値を算出します。計算式は以下のとおりです。
MaxClients最大値 = (総メモリ量 - システム全体の消費メモリ量)/(Apache 1プロセスあたりの消費メモリ量)
例えば、総メモリ量が「1002MB」、システム全体の消費メモリ量が「164MB」、Apache 1プロセスあたりの消費メモリ量が「10MB」であれば、MaxClientsに設定してもいい最大値は「83」となります。この場合、少し余裕を見て50〜70で設定するとよいかと思います。
その他、StartServersなどの数値はとりあえず標準のままでも構いません。MaxRequestsPerChildだけは1000くらいにした方がいいかもです。