先日、エコテキブログで使っているサーバーを、「さくらのVPS 512MBプラン」を「さくらのVPS 2GBプラン」に変更しました。するとGoogleが提供するPageSpeed Insightが表示するサーバーの応答時間が、0.78秒から0.4秒程度になりました。
ただしGoogleが推奨するサーバーの応答時間は0.2(200ミリ)秒以下です。この基準を満たすために、WordPressのプラグインであるWP Super Casheを活用した例をご紹介します。
“query_cashe_type=1″が登録できない
当初はWP Super Casheを使う予定はありませんでした。上記の記事でMySQLのチューニングを準備していたように、MySQLの設定ファイルを書き換えることでデータベースキャッシュを削減し、サーバーの応答速度を上げようとしていました。
# vi /etc/my.cnf i # [mysqld] ←ブロックに追記 query_cashe_size=32M query_cashe_limit=2M query_cashe_min_res_unit=2M query_cashe_type=1 :wq # systemctl restart mysqld.service ←ここで黒い画面が固まる
ですが、クエリーキャッシュの設定について記述すると、システムの再起動ができません。
# view /etc/log/mysqld ... 2018-08-20 15:53:53 21114 [Note] InnoDB: 5.6.36 started; log sequence number 2018-08-20 15:53:53 21114 [ERROR] /usr/sbin/mysqld: unknown variable 'query_cashe_type=1' 2018-08-20 15:53:53 21114 [ERROR] Aborting ... # mysql –version mysql Ver 14.14 Distrib 5.6.36, for Linux (x86_64) using EditLine wrapper
MySQLの設定ファイルで原因を探っているとクエリをキャッシュする、“query_cashe_type=1″の設定が使えない(unknown variable)ことが分かりました。MySQL5.6.36であれば、”query_cashe_type”は使えると思っていたのですが。
WP Super Cacheのイメージ
そこで登場するのが、WordPressのプラグインであるWP Super Cacheです。WP Super Cacheは、WordPressが行う処理をすべてキャッシュしてくれます。
WP Super Cacheを使わない場合
クライアントPC(50,000cache) → データベース(50,000cache) クライアントPC(50,000cache) ← データベース(50,000cache)
仮にクライアントPCからデータベースに50,000キャッシュが送られるとしましょう。WP Super Cacheを使わない場合、データベースはキャッシュせず、そのままクライアントPCに50,000キャッシュを返します。
WP Super Cacheを使わない場合
クライアントPC(50,000cache) → データベース(50,000chasheが) クライアントPC(50,000cache) ← WP Super Cache(25,000cache) ← データベース(25,000cache)
WP Super Cacheを使うと、クライアントPCからすでに送られたキャッシュについては、データベースを通さず、そのままクライアントPCにキャッシュを返すことになります。WP Super Cacheを使っていないときと比べて、25,000回データーベースへの問い合わせ作業が減ることになります。
WordPressのシステムにおいて、MySQLの問い合わせ作業(クエリ)は非常に負担になると言われています。その負担を削減することはサーバーの応答速度を上げることに大きく貢献します(なお25,000回という数字はイメージです)。
WP Super Cacheの設定とパフォーマンスの確認
では実際にWP Super Cacheをインストールして有効化してみましょう。
WP Super Cacheの設定
WordPressの管理画面から”WP Super Cache”の設定メニューをクリックします。簡易画面が表示されますので、”キャッシング利用(推奨)”にチェックを入れて、”ステータスを更新”をクリックします。
なお、WP Super Cacheを日本語化すると、上記のような警告文が表示されます。この警告文をよく確認した上で、WP Super Cache利用の検討をしましょう。自分の場合は、プラグインをインストールして初めて警告文が表示されました。したがって警告文を無視して利用しました。
パフォーマンスの確認
mysql> SHOW STATUS LIKE 'Qcache%';
MySQLの画面に入って、SHOWクエリで現在のクエリキャッシュの利用状況を確認します。上記の画像は、WP Super Cacheを利用する前後でクエリキャッシュがどれぐらい変化しているかを表しています。
プラグインの利用前はMySQLに41,450cacheが存在しましたがプラグインを利用すると、キャッシュが25,016cacheまで減少しました。今回の場合、約16,000cacheがWP Super Cacheによって引き受けられたと推測されます。
PageSpeed Insightsの評価
当エコテキブログでWP Super Cacheをインストールすると、PageSpeed Insightsでは、モバイル・パソコンともに「サーバーの応答時間」が最適化済みの提案となりました。サーバーの応答時間は、Googleが推奨する0.2秒以下になっていると考えられます。
モバイル
モバイルは直近のスコアと比べ6ポイント上昇し、82点になりました。初めてのPageSpeed Insightsの最適化達成です。
パソコン
パソコンは直近のスコアと比べ2ポイント下落し、72点になりました。