8wired

とりあえずやってみるブログ

WordPress

W3 Total CacheからYASAKANI Cache変更で驚くほど快適に!でも素直にお薦めできないわけ→お薦めできます

更新日:

このブログは、コアサーバー(CORE-A)で運用しています。

数日前にリソースに余裕のあるサーバに引っ越したのですが、自分が引っ越したことでCPU負荷が慢性的に増えてしまった(数%だけです!)ので見直しをしていました。

W3 Total Cacheを外したらリソースが解放されたので原因はすぐに特定できたのですが、リソース食いの原因とは言え有用なプラグインだけに簡単に外すことはできません。

「WP Super Cache」「WP Fastest Cache」「Simple Cache」など他のキャッシュ系プラグインを代用として試してみましたがどれも決め手に欠けました。

そんな内の1つに「YASAKANI Cache」という聞いたことのないプラグインがあったのですが、試してみたら思いがけず良かったのでそのまま使うことにしました。

まだほとんど紹介されていないプラグインだと思うので簡単ですが紹介したいと思います。

YASAKANI Cache

YASAKANI Cacheは、2016年8月にリリースされたばかりの非常にシンプルで高速なWordPressのキャッシュ系プラグインです。

機能がページキャッシュに限られている事もありますが動作は非常に軽快で設定もシンプル。mod_rewriteを使ってないのでApache以外のウェブサーバでも導入でき、.htaccessが汚れません。ただし、キャッシュ管理にSQLiteを使っているのでSQLiteが使えない環境だと動作しないようです。

インストールは、管理画面のプラグイン新規追加から簡単に行えます。

有効化すると管理画面の設定に「YASAKANI Cache」が追加されます。設定項目はたったの4つだけ。

ページキャッシュで「有効」を選択、キャッシュ有効時間を設定して「設定更新」すれば設定は完了です。最初のうちは、ログモードを「All request url」にして、キャッシュ状況を確認するといいと思います。安定したら負荷になるのでログモードは無効にしたほうがいいです。

設定はこれしかないので、あとはうまく動くのを祈るだけ。うまく動いてキャッシュされると、上の[Valid Cache]のカウンターが増えていきます。

細かい説明は製作者さんのサイトに詳しく書いてあります。日本語なので安心です。
WordPress Plugin : YASAKANI Cache | セルティスラボ

注意点がいくつかあります。

YASAKANI Cacheは標準機能でモバイル判定していますが、wp_is_mobileで判定しているので、テンプレートなどで切り替えを行っている場合には注意が必要です。STINGER8ではst_is_mobileを子テーマで宣言できる様に作られていたので、wp_is_mobileをラップして使っています。

記事の投稿や更新したときにキャッシュをパージしてくれないので手動で「キャッシュクリア(個別はできず全パージのみ)」する必要があります。プログラムを確認したら記事更新などにキャッシュをパージしていたので「キャッシュクリア」は不要です。

sqliteを使っているので共有サーバなどの負荷の高い環境ではディスクアクセスによるオーバーヘッドの懸念があり、アクセス数の多いサイトには向かない可能性があります。APC/APCu高速モードが使える環境やSSDの環境なら試す価値ありです。

動作状況

下記はブログのトップページに5分毎にアクセスして、応答時間をモニタリングしたものです。

グラフでは概ね0.1秒台で応答できるようになっているのが確認できます。コアサーバーの環境だとキャッシュを使わなくても0.7秒前後で応答できるのですが、キャッシュを使えばそれより大幅に高速に応答できるようになります。所々キャッシュ落ち以上の頻度で速度が出ていない謎(FastCGIの寿命?)がありますが、共有サーバということを考慮すれば十分な結果です。

管理者だと基本的にキャッシュが効かない状態で使う事になりますが、W3 Total Cacheと比較すると驚くほどの違いを体感できます。

良いこと尽くめでもお薦めできないわけ→お薦めできます

Ver.0.9.6でプログラムを修正することなく利用できるようになりました。
YASAKANI Cache Ver.0.9.6がリリース、キャッシュ系プラグインにお薦めできそう | 8wired

設定簡単、動作快適と良いこと尽くめのYASAKANI Cacheですが、お薦めできないわけがあります。

YASAKANI CacheはPHPエラーが発生するとキャッシュしないという動作をします。普通に考えればエラーが発生したらキャッシュしないのは問題なさそうですが、YASAKANI CacheはSTRICTやNOTICEなど動作に支障がでない軽度なエラーでもキャッシュを諦めてしまいます。この為、利用しているプラグインやテンプレートなどによっては、1ページもキャッシュされないという可能性があります。

私は致命的なエラーでなければキャッシュするようプログラムを少し書き換えて回避しています。「DB Cache Reloaded Fix」だけは最後まで駄目だったので削除しました。(もっともWordPressにキャッシュ機能が実装されてから効果に怪しい面があったので結果的に良かったのですが・・・。)

私の使い方が間違っている可能性を否定できませんが、YASAKANI Cacheは使えたら超ラッキーというプラグインではないかと思っています。

YASAKANIの名前は3種の神器の八尺瓊勾玉(やさかにのまがたま)から命名したと言うことなので、実のところ私には過ぎたるものなのかもしれません。

まとめ

YASAKANI Cacheを導入してから管理画面の重さが劇的に軽くなりました。特に編集中のプレビュー速度の改善は感動ものです。

使えればこれほど良いプラグインはありませんが、書いた通りの癖もあります。素直にお薦めはできませんが、それでもと興味が沸いた方にはぜひ使ってみてください。そして上手な使い方があれば教えてください。

-WordPress
-,

Copyright© 8wired , 2017 All Rights Reserved Powered by STINGER.