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くらいにした方がいいかもです。

このブログの人気の投稿

oh-my-zshの導入とか、zshとvimの環境をナウでヤングでシンプルな感じにした

Kindleでの自炊管理に思わぬ落とし穴があったのと、実用書の相対価値が変わったという話