WP Super Cacheでサイトの超高速化を達成

サイト高速化チューニングも5か月間もやっていると手詰まってしまいました。
いよいよ残すはNginxのプロキシキャッシュかWP Super Cacheのキャッシュか?というところで、簡単に導入できそうなWP Super Cacheに手をだしてみました。

1.eacceleratorからAPCに切り替える

PHP高速化はeacceleratorを使っていましたが、WP Super Cache001 Prime Strategy Translate Acceleratorと相性の良いらしいAPCに切り替えてみます。

やったことはeacceleratorのアンインストール、次にapcをインストールして最後にhttpdを再起動するだけ。ついでにapc.phpをコピーしてAPCのコンソールも導入しましょう。

# yum remove php-eaccelerator
# yum install php-pecl-apc
# service httpd restart

# cp /usr/share/php-pecl-apc/apc.php /var/www/html/apc.php

2.WP Super Cacheを導入

WordPressの「ダッシュボード」から「プラグイン」→「新規追加」と進み「WP Super Cache」を検索します。表示されたプラグインをインストールします。
wpsc_0

3.WP Super Cacheの設定

WP Super Cacheをインストールし有効化しただけではキャッシュ機能を利用できません。次の設定でキャッシュを有効にします。まず「設定」メニューの「WP Super Cache」を選択します。

「簡易」タブを開き「キャッシング利用 (推奨)」にチェックを入れ「ステータスを更新」ボタンをクリック。
wpsc_1

「詳細」タブに移動し「ヒットしたページをキャッシュし、素早くアクセスさせる。 (推奨)」と「キャッシュファイルの提供に PHP を利用する。」にチェックをいれます。「mod_rewrite」の方がPHPより高速らしいのですが設定が若干厄介になるので今回はやめておきます。
wpsc_2

また「304 Not Modified ブラウザーキャッシング。最後にリクエストされてから変更がないことを示す。 (推奨)」「既知のユーザー向けにはページをキャッシュしない。 (推奨)」にもチェックをいれておます。一人で管理するサイトならチェックを入れなくてもセキュリティ的に問題はないと思いますが念のため。
wpsc_3

まずはこの設定でWordPressでキャッシュを利用できるようになるはずです。

4.キャッシュの効果を確認

muninのcurlプラグインでキャッシュの効果を確かめます。WP Super Cacheを導入する前の6/5の22時頃まではtotaltimeが200msでしたが、設定後は約10msになっているのが分かります。
wsc_beforeafter

ただしこのグラフだけでは具体的な数値が分かりづらいので、チューニングに段階をつけて表にしてみました。

段階 curl ab -n 100 -c 10 ab -n 500 -c 100
start total Time Time taken Requests/s Time taken Requests/s
チューニングなし 623ms 790ms 10.48s 9.55/s
APC導入 110ms 206ms 4.02s 24.89/s
001 Prime Strategy Translate Accelerator
キャッシュタイプ:ファイル
96ms 189ms 3.10s 32.21/s
001 Prime Strategy Translate Accelerator
キャッシュタイプ:APC
84ms 173ms 3.05s 32.75/s 15.334 32.61/s
WP Super Cache有効(デフォルト設定) 88ms 188ms 3.22s 31.06/s 16.486 30.33/s
WP Super Cache有効(キャッシュ利用) 5ms 8ms 0.10s 1005/s 0.466 1073/s

※「001 Prime Strategy Translate Accelerator キャッシュタイプ:APC」とは、PHP高速化にAPCを利用している場合のみ翻訳ファイルのキャッシュをAPCのUserCacheに置いて更に高速化可能なオプション。eacceleratorでは利用できません。001psta_apc

WP Super Cacheを利用しない状態でもcurlのtotal timeが200msを切っていたので約3倍の高速化を実現していましたが、WP Super Cacheを利用して適切なセッティングをするだけで一気に100倍高速化できてしまいました。キャッシュが効いた状態であれば圧倒的ですね。