自宅サーバの整理箱

自宅サーバを構築しwordpress,fedora,CentOSの作業メモ

*

apacheのprefork.c設定見直しwordpress

   

自宅サーバへwordpressを構築してから、ずーっと
遅いなとおもってまして、MySQLをチューニングしたり
ヘッダをきれいにするプラグインをいれたり、
キャッシュするプラグインを入れたりと、試行錯誤
していましたが、本日、やっと問題点を突破しました!

原因は、なんとapacheの設定にありました、某サイトの
とおりapache設定をそのまま流用していたのですが、
以下のパラメタの変更が、私の自宅PCのスペックに応じて
必要でした。

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

↑デフォルトで上のような設定になっていると思います。
これは、apacheのプロセス数を設定している項目になります。

上記のままの場合、最大集中して256+20プロセスが起動して
しまいます。1プロセスあたり、およそ10MB程度メモリを消費
していましたので、何度2.5GBも必要として、Swapしまくって
ました。i/o waitの原因が突き止められました。

またMaxRequestsPerChild についても4000から大幅に削減し
ています。この項目は、子プロセスがどのくらい動いたら消滅
するかの定義で、phpとか不具合によるメモリリークを考慮して
少ない値に設定しました。

取り合えず、今はミニマムに設定をみなおして以下の値です。

<IfModule prefork.c>
StartServers       5
MinSpareServers    5
MaxSpareServers   10
ServerLimit       50
MaxClients        50
MaxRequestsPerChild  500
</IfModule>

 - apache, Word Press

 Total 33 views