codingecho

日々の体験などを書いてます

さくらのレンタルサーバのPHPモジュールモードとCGIモードのレンダリング速度を比較

TL;DR

  • リプレイスされ新しくなったさくらのレンタルサーバに移行した
  • 新しいさくらのレンタルサーバと、古いさくらのレンタルサーバを使ってWordPressのレンダリング速度を比較した
  • 新しいさくらのレンタルサーバは古いさくらのレンタルサーバに比べて約2.1倍レンダリング速度が速かった

このブログはWordPressを使用して、さくらのレンタルサーバでホスティングしています。今年の4月ぐらいから、さくらのレンタルサーバのマシンが順次リプレイスされ始めていました。新しいマシンではPHPがモジュールモードになったり、ストレージがSSDになったり、WebサーバーがNginxになりHTTP/2が使えるようになりました。4月からさくらのレンタルサーバを申し込んだユーザーは新しいマシンを使えるようですが、私はリプレイス前に申し込んでいたため古いマシンでした。古いマシンのユーザーには順次新しいマシンに移行するための初期費用無料と1ヶ月の利用が無料になるクーポンを配るということでした。私にも6月ぐらいにクーポンが届いたので、どれぐらいレンダリング速度が改善するか気になっていたため8月はじめぐらいに移行してみました。移行したのはいいのですが、肝心の速度の改善について計測できていなかったので確認してみました。

計測環境

新しい環境と古い環境以下の条件を揃えています。

  • WordPressのプラグイン
  • ブログポストの内容

新しいさくらのレンタルサーバ

PHP: PHP 7.2.8 モジュールモード
Web server: Nginx (HTTP/2)

古いさくらのレンタルサーバ

PHP: PHP 7.2.8 CGIモード
Web server: Apache (HTTP/1.1)

使用したWordPressのプラグイン

  • Akismet Anti-Spam
  • Google Analytics for WordPress by MonsterInsights
  • JP Markdown
  • MathJax-LaTeX
  • WP Code Highlight.js

ブログポストの内容

約3000文字のランダムな文字列

計測に使用したアプリ

Chrome (68.0.3440.106)のAudits。
設定は以下の通りです。
Device: Desktop
Throttling: No throttling
Clear storage: True

計測方法

計測のために用意したブログポストをAuditsで計測しました。計測結果のFirst Meaningful Paintの時間を5回計測した平均を求めました。First Meaningful Paintは最初のコンテンツが表示されたとユーザーが感じる時間を表しています。

測定結果

First Meaningful Paintの値は以下の通りです。
新しいさくらのレンタルサーバ: 488ms
古いさくらのレンタルサーバ: 1026ms

古いさくらのレンタルサーバに比べて新しいさくらのレンタルサーバは約2.1倍レンダリングが早い結果となりました。体感でもキャッシュが無い状態からページを表示した時にテキストが表示される時の時間差を感じました。500ms近くも違えば早いと感じますね。

当たり前ではありますが、プラグインやコンテンツの内容によってレンダリング時間も変わります。また、共用サーバーのため他のユーザーの利用状況でも結果は変わるでしょう。ですが、新しいさくらのレンタルサーバを使った方がコンテンツのレンダリング速度の改善を見込めるので、積極的に移行すべきかと思います。