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>
Total 2,743 views