Proxy Cache があれば WP-Super Cache はいらない子か?

本記事は最終更新日より 1 年以上経過しております。
スポンサーリンク

 昨日 30 から 31 日の明け方までひたすら WordPress のキャッシュ周りで無駄な時間を過ごしていた。PC は PC 用、スマホは WPtouch になって欲しいのに上手い事噛み合わずで原因は WP-SuperCache にあった。
 WP-SuperCache のキャッシュを削除した後、スマホでアクセスすると WPtouch になるが、一度 PC でアクセスすると次回以降スマホでアクセスしても PC 用のページになってしまうと言う現象。WP-SuperCache の設定で User-Agent を見てキャッシュしないようにしていても発生してしまっていた。
 正常に動いているサイトと WP-SuperCache と WPtouch の設定値を比較しても相違ないし Web Server の設定を同じに合わせても挙動が違う。それなら一度 SuperCache を止めてしまえとやったんだけど、動いているときと大差の無いパフォーマンスが出ており「あれれ?」となった。

パフォーマンスのテストを行う

 そこで新たに ReverseProxy を適用させたホストで、Proxy Cache の有無、WP-SuperCache の有無それぞれのパターンを組み合わせてパフォーマンスをはかってみた。
 使用した負荷ツールは httpress でパラメータは同時接続 10 の 1,000 リクエスト「-n 1000 -c 10」とした。見るべきポイントは当然 rps の表示で Request Per Second の略。秒間あたりにこなせるリクエスト数だから数値が高いほど良い。

Reverse Proxy 無し、WP-SuperCache 無し

250 requests launched
500 requests launched
750 requests launched
1000 requests launched

TOTALS:  1000 connect, 1000 requests, 1000 success, 0 fail, 10 (10) real concurrency
TRAFFIC: 9858 avg bytes, 270 avg overhead, 9858626 bytes, 270000 overhead
TIMING:  49.793 seconds, 20 rps, 198 kbps, 497.9 ms avg req time

Reverse Proxy 無し、WP-SuperCache 有り

250 requests launched
500 requests launched
750 requests launched
1000 requests launched

TOTALS:  1000 connect, 1000 requests, 1000 success, 0 fail, 10 (10) real concurrency
TRAFFIC: 47403 avg bytes, 329 avg overhead, 47403408 bytes, 329000 overhead
TIMING:  0.417 seconds, 2396 rps, 111711 kbps, 4.2 ms avg req time

Reverse Proxy 有り、WP-SuperCache 無し

250 requests launched
500 requests launched
750 requests launched
1000 requests launched

TOTALS:  1000 connect, 1000 requests, 1000 success, 0 fail, 10 (10) real concurrency
TRAFFIC: 51290 avg bytes, 293 avg overhead, 51290288 bytes, 293000 overhead
TIMING:  0.141 seconds, 7042 rps, 354771 kbps, 1.4 ms avg req time

Reverse Proxy 有り、WP-SuperCache 有り

250 requests launched
500 requests launched
750 requests launched
1000 requests launched

TOTALS:  1000 connect, 1000 requests, 1000 success, 0 fail, 10 (10) real concurrency
TRAFFIC: 52576 avg bytes, 352 avg overhead, 52576400 bytes, 352000 overhead
TIMING:  0.153 seconds, 6494 rps, 335668 kbps, 1.5 ms avg req time

結果を見て考える

(rps)Reverse Proxy 無しReverse Proxy 有り
WP-SuperCache 無し207042
WP-SuperCache 有り23966494

 考えるといっても、見たまま受けとると「WP-SuperCache 無しでいいじゃないか……」となる。同じ様な速度を出せるのであれば、トラブルの原因になりそうな物は排除した方が良い。
 勿論、これは ReverseProxy を効かすことの出来ない環境で WP-SuperCache を使うのは多いにありと言うか使わない手は無いけど、Nginx で運用しているのならわざわざ使う事も無いのだと思う。

 現状、Nginx 側のキャッシュがコンフリクトするとかそういう事も起きていないので、このまま WP-SuperCache 無しの運用で方針も固まりそうだ。
 ただ、不具合の原因をうやむやにしたくないから、一応 WP-SuperCache 使用中に起こっていた問題は追って調査しておくかな…… 禿げ上がりそうだけど。

スポンサーリンク