さくらVPSでWordpressブログをやってます。そんなにアクセスがないはずなのに、さくらVPSに移行した当時は結構サーバが落ちました。topコマンドで見るとスワップが結構70%まで上がったりして、手動でapache再起動とかもやりました。。ネットでいろいろググッてそれなりにパフォーマンスチューニングした結果やっと安定して、同じサーバに2つのWordpressブログと一つのRailsアプリケーションを実行しています。

参考までにさくらVPSは一番安いの512MB、月1000円のプランで、平日だとこのブログの一日PVは大体500〜600です。

チューニングしてから結構時間が経ったのでだいぶ忘れました。Evernoteでのメモを貼ります。

効果が高い順で。

Wordpress

W3 Total Cacheプラグインが一押しです。インストールも設定も簡単ですし、一番効果があります。
ページのキャッシュ、cssやjavascriptのマージと圧縮など、結構やってくれます。実際これだけ入れても感じるほど早くなるはずです。

Apache

httpd.confを編集します。いろいろ修正してみましたが、結果下記の設定にしました。この辺はググったら結構出ますが、それぞれの環境に合わせて試行錯誤したほうがオススメです。


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

PHP

/etc/php.ini

zlib.output_compression = On

APC

pecl install APC

2010年11月26日 #apache #php #php #memcache

My環境

XAMPP1.7.3 + WinXP
ダウンロードはこちら

memcache側の設定

memcacheのインストール手順

  • http://code.jellycan.com/memcached/よりmemcached 1.2.6 => win32 binaryバージョンのファイルをダウンロード +zipファイルを適当な場所(例えばc:\memcached)に解凍 +コマンドプロンプトから下記コマンドを叩く、Windowsサービスとしてインストール。これで今度Windowsが起動すると自動でmemcacheサーバが起動してくれる。 c:\memcached.exe -d install

memcacheの起動(初回のみ)

コマンドプロンプト

c:\memcached\memcached.exe -d start

php側

php.iniの設定

XAMPPのパス/php/php.iniを編集:下記コードを追加

extension = php_memcache.dll

ここはLinux環境と違い拡張子が.soではなく.dll。

php_memcache.dllのダウンロード

http://downloads.php.net/pierre/から'memcache'を検索して正しいバージョンのファイルをダウンロード。
そしてxampp/php/extに入れる。

ここで問題!正しいバージョンはなんなのか?間違ってダウンロードすると後でApacheサーバを立ち上がるときエラーが出るよ。私の環境だとphp_memcache-cvs-20090703-5.3-VC6-x86.zipのファイルが正しいけど、今時点で上記URLには載せていない。結構ググって見ても結局古い結果で、しょうがなく友人からそのファイル貰った。。。ここにアップしたので、必要な方はダウンロードしてください。ウイルススキャンしてね。。
. $memcache->getVersion() . "<br />\n"; // we will create an array which will be stored in cache serialized $testArray = array('horse', 'cow', 'pig'); $tmp = serialize($testArray); $memcache->add("key", $tmp, 30); echo "Data from the cache:<br />\n"; print_r(unserialize($memcache->get("key"))); ?>

おまけ:memcacheメモリの調整

Memcached, by default, loads with 64mb of memory for it’s use which is low for most applications. To change this to something else, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server in your registry, find the ImagePath entry and change it to look something like this:

“C:\memcached\memcached.exe” -d runservice -m 512

参考

http://www.codeforest.net/how-to-install-memcached-on-windows-machine
http://pureform.wordpress.com/2008/01/10/installing-memcache-on-windows-for-php/

2009年11月29日 #apache

サイトの引越しなどであるURLから別のURLへ転送する場合の話です。例えば JavaScript を利用して転送したり、HTMLの機能で転送させたりするかもしれません。


しかしトップページでリダイレクトしてみても、別のページに直リンクしていた場合は旧ページが表示されることになります。そのような時に、Apache では httpd.conf に下記の1行を追加することで、別のURLへ転送させる事が可能です。

``` Redirect / http://www.yahoo.co.jp/ ```

この例では Yahoo Japan へリダイレクトされますが、例えば http://www.example.com/base/ にアクセスした場合でも http://www.yahoo.co.jp/base/ へのリダイレクトが行われます。