Memcached Object Cache+batcache

Wordpress

概要

mystiqueテーマを使った、Wordpressのページ表示に1,2秒かかるのでキャッシュを導入し、レスポンスが35.6倍速くなりました!

インストール

以前、WP-SuperCacheというプラグインを試したが、マルチブログで正常に動作しないし、携帯のキャリアごとにキャッシュできないといった不便さがあったので導入しないでいました。

しばらく放置していましたが、いかんせんページ表示が重くて、10秒間HTTPの応答が無いというアラートメールが飛んでくるようになったので対策を行いました。

どうせ早くするなら、KVSにしてアプリケーションサーバをスケールアウトできるようにします。

導入したのは以下の3つ。
導入方法はそれぞれのページにわかりやすく書いてあるので割愛します。

カスタマイズ

batcacheに関しては、自分でキャッシュのキーを選択できるので、キャリアごとにキャッシュを作るようにするために以下のブロックを追加しました。

function is_mobile_user_agent()
{
require_once('Net/UserAgent/Mobile.php');

$agent = Net_UserAgent_Mobile::singleton();

  if ($agent->isDoCoMo()) {
    return 1;
  } else if ($agent->isEZweb()) {
    return 2;
  } else if ($agent->isSoftBank()) {
    return 3;
  } else if ($agent->isWillcom()) {
    return 4;
  }else if(strpos('iPhone', $_SERVER['HTTP_USER_AGENT']) !== false ){
    return 6;
  }
  return 5;
}
$batcache->unique['mobile'] = is_mobile_user_agent();

どちらのプラグインもソースコードがとても汚いので書き直したくなりますが、動くので良しとしよう。

ベンチマーク

測定は、インターネット越しに以下のコマンドを実行
% /usr/local/apache2/bin/ab -c 10 -n 500 https://matsu.teraren.com/blog/

前:1.47 [#/sec] (mean)
後: 52.38 [#/sec] (mean)

35.6倍速くなりました!

更新履歴

2010/12/19 WP-Touchを使っている場合にPCとキャッシュが共有されてしまう問題があったのでコードを修正。

コメント