公開日:2020年11月6日 最終更新日:2020年11月6日
Redisインメモリキャッシュを試したくて。
ちょっと触ってみたけど、多分Redisの使い方正しくないような……
この記事は正式記事になる前の『ネタの種」です。機会を見て、ちゃんとテスト条件を明示、調整してまとめたい。
自社WordPressサイト
WordPress5.5.3
キャッシュプラグイン:Litespeed cache(サーバーはLitespeedではない)
AWS t2.microインスタンス
Nginx
PHP7.3.24
RDS MySQL5.7相当
apache benchによる外部からのリクエスト
対象URL:https://interface-design.jp/phpinfo.php
Redis 拡張機能 ON | Redis 拡張機能 OFF |
---|---|
Total transferred: 105002000 bytes HTML transferred: 104738000 bytes 1) Requests per second: 54.68 [#/sec] 2) Requests per second: 38.56[#/sec] 3) Requests per second: 54.66[#/sec] | Total transferred: 105018004 bytes HTML transferred: 104754000 bytes 1) Requests per second: 53.01 [#/sec] 2) Requests per second: 55.85 [#/sec] 3) Requests per second: 56.36 [#/sec] |
対象URL:https://interface-design.jp/
Redis 拡張機能 ON | Redis 拡張機能 OFF |
---|---|
Total transferred: 24892004 bytes HTML transferred: 24271000 bytes 1) Requests per second: 82.00[#/sec] 2) Requests per second: 84.77[#/sec] 3) Requests per second: 85.35[#/sec] | Total transferred: 24892000 bytes HTML transferred: 24271000 bytes 1) Requests per second: 84.00 [#/sec] 2) Requests per second: 90.51 [#/sec] 3) Requests per second: 86.71 [#/sec] |
対象URL:https://interface-design.jp/web%e5%88%b6%e4%bd%9c/wordpress/wordpress-local/
Redis 拡張機能 ON | Redis 拡張機能 OFF |
---|---|
Total transferred: 52997000 bytes HTML transferred: 52369000 bytes 1) Requests per second: 74.42 [#/sec] 2) Requests per second: 79.22 [#/sec] 3) Requests per second: 71.84 [#/sec] | Total transferred: 52997004 bytes HTML transferred: 52369000 bytes 1)Requests per second: 72.16 [#/sec] 2) Requests per second: 70.11 [#/sec] 3) Requests per second: 66.69 [#/sec] |
う〜ん、Redisの効果が分からん……
若干早くなってるような???
litespeed cache入れてるのに…
掛け合わせてみて、どうだろう…
対象URL:https://interface-design.jp/
Redis 拡張機能 OFF | Redis 拡張機能 OFF+ Super Cache ON(gzip ON?) |
---|---|
Total transferred: 24892000 bytes HTML transferred: 24271000 bytes 1) Requests per second: 84.00 [#/sec] 2) Requests per second: 90.51 [#/sec] 3) Requests per second: 80.03 [#/sec] | Total transferred: 7765000 bytes HTML transferred: 7085000 bytes 1) Requests per second: 100.42 [#/sec] 2) Requests per second: 97.03 [#/sec] 3) Requests per second: 104.72 [#/sec] |
対象URL:https://interface-design.jp/web%e5%88%b6%e4%bd%9c/wordpress/wordpress-local/
Redis 拡張機能 OFF | Redis 拡張機能 OFF+ Super Cache ON(gzip ON?) |
---|---|
Total transferred: 52997004 bytes HTML transferred: 52369000 bytes 1) Requests per second: 72.16 [#/sec] 2) Requests per second: 70.11 [#/sec] 3) Requests per second: 66.69 [#/sec] | Total transferred: 13405000 bytes HTML transferred: 12717000 bytes 1) Requests per second: 98.01 [#/sec] 2) Requests per second: 98.26 [#/sec] 3) Requests per second: 92.02 [#/sec] |
んんん!?
なんかめちゃ早くなってる……
ちなみにRedis 拡張機能 OFF + Super Cache ON(gzip ON?)でabテスト時のCPU負荷はこんな感じ
CPU load average: 0.00, 0.03, 0.05
gzipは事前にレスポンスを圧縮するのでCPU負荷が掛かると思ってたんだけどt2.microでこれなら全然問題ないなぁ。
Nginx Redis 拡張機能 OFF+ Super Cache ON(gzip ON?) | Apache2.4 Redis 拡張機能 OFF + Super Cache ON(gzip ON?) |
---|---|
Total transferred: 13405000 bytes HTML transferred: 12717000 bytes 1) Requests per second: 98.01 [#/sec] 2) Requests per second: 98.26 [#/sec] 3) Requests per second: 92.02 [#/sec] | Total transferred: 52877638 bytes HTML transferred: 52554000 bytes 1) Requests per second: 69.28 [#/sec] 2) Requests per second: 47.85 [#/sec] 3) Requests per second: 67.57 [#/sec] |
転送データ量からgzipの恩恵を受けてない?
サーバーの状態を見ているとphp-fpmプロセスが大量に発生していたので、ページキャッシュの恩恵も受けていないかも。
load average: 8.80, 7.51, 3.31
load averageも大変なことに……
Apacheだけどうにも値がおかしいような…
そもそもlitespeed cacheとSuper Cacheで役割分担できてるのか?
gzipだけならhtaccessやnginx.confで設定した方が確実だし。
各テスト条件でのレスポンスヘッダを確認していないので、本当にgzipが有効だったか不明。
そもそもOPcacheが効いているので、Redisの効きどころはDBオブジェクト回りくらいか?もっと複雑なSQLを使う環境なら影響が出たかもしれないけど、普通のウェブサイトレベルじゃ効果薄いのかもしれない。
この記事は機会を見て、ちゃんとテスト条件を明示、調整してまとめたい。
今回の環境は kusanagi を使って nginx と apacheを切り替えてテストしたんだけど、apacheだどfcacheは効かない。
さらにbcacheもちゃんと設定ができていない様子。
試しにnginxでもfcache、bcacheを切った状態で試したらapacheと対して変わらない数値&load averageだった。
kusanagiのnginx.confを覗いたり、リクエスト、レスポンスヘッダーを確認するとデータ転送時の圧縮には Brotli を使っている様子。
Brotliについてはこちら
https://blog.redbox.ne.jp/cdn_brotli.html
さらにこんな記事見つけた。
https://openlitespeed.org/mediawiki/index.php/Help:How_to_integrate_Redis_with_WordPress_On_Openlitespeed
やっぱりRedisちゃんと効いてなかったのかな?