自宅サーバの整理箱

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

*

apacheで割当可能メモリ、preforkをチューニングwordpressを高速化

   

wordpressでブログサイトを運営しています。
アクセス数が伸びるとapacheの応答時間が遅くなりました。
そこで再度apacheの設定を見直してチューニングしたいと思います。

今回はprefork関連を見直し、常駐プロセス数を変更したいと思います。

まずはapacheに割当可能なメモリ数を調べます。

#
# service httpd stop ←apacheを止めます。
httpd を停止中:                                            [  OK  ]
# free -m ←割当可能なfreeメモリを調べます
             total       used       free     shared    buffers     cached
Mem:          1869        925        944          0         48        319
-/+ buffers/cache:        557       1312
Swap:          991          0        991
#

この場合ですと、「-/+ buffers/cache: 」の1312byteが割当可能MAXとなります。

次にApache 1プロセスあたりの消費メモリ量をチェックします。

#
# ps -ylC httpd --sort:rss
S   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN  TTY          TIME CMD
S     0  2839     1  0  80   0 13132 99005 poll_s ?        00:00:00 httpd
S    48  2842  2839  0  80   0 16668 100429 semtim ?       00:00:01 httpd
S    48  2843  2839  0  80   0 41036 106512 semtim ?       00:00:01 httpd
S    48  2850  2839  1  80   0 42364 106758 semtim ?       00:00:05 httpd
S    48  2845  2839  0  80   0 44212 107387 poll_s ?       00:00:02 httpd
S    48  2851  2839  0  80   0 44264 107323 semtim ?       00:00:02 httpd
S    48  2847  2839  0  80   0 44360 107274 semtim ?       00:00:02 httpd
S    48  2848  2839  1  80   0 44552 107293 semtim ?       00:00:04 httpd
S    48  2844  2839  0  80   0 44772 107422 semtim ?       00:00:02 httpd
S    48  2846  2839  0  80   0 45088 107451 ep_pol ?       00:00:03 httpd
S    48  2849  2839  0  80   0 45632 107585 semtim ?       00:00:01 httpd
#

上記の通り、最大メモリ使用プロセスは「45632」Kbyte =45Mbyteであることが分かりました。それではこれを基準として割り当てれる同時起動プロセス数を見直します。

割当可能メモリが1.3Gでしたので、余裕をみて1.0G割当可能として
1プロセスあたりが50MBとすると 1000MB ÷ 45MB = 22 となりました。

では
ServerLimit 、MaxClientsは計算結果の値を、
StartServers 、MinSpareServersはその4分の一程度
MaxSpareServersはその2分の一程度で割り当てたいと思います。

<IfModule prefork.c>
StartServers           5
ServerLimit            20
MaxClients             20
MinSpareServers        5
MaxSpareServers        10
MaxRequestsPerChild  1000
</IfModule>

 - apache, Word Press

 Total 2,615 views