PHP7採用のエックスサーバー!確実に向上するWordPressのレスポンス性能

エックスサーバー(XSERVER)はPHP7に対応しており、ドメインごとにバージョンを切り換えることができます。PHP7は様々な部分が改良されていますが、最も大きな改善点は「PHP5の2倍以上の実行速度!」でしょう。

おそらく「平均的に」または「特定の条件で」2倍となることは、想像に難くありません。ほとんど変わらない部分や大幅に向上した機能もあるでしょう。レンタルサーバーのユーザーであれば、WordPressの処理性能がどれだけ向上するかが最も気になるところです。

すでに多くの方がPHP7に移行しているようですが、「(何となく)速くなった!」という体感的かつ主観的な評価が多く、具体的なデータを載せている記事がほとんどありません。ここでは実際にPHP5とPHP7で稼働させたWordPressの処理性能を比較した結果を紹介します。

レスポンス性能の比較

測定用サーバーから定期的にアクセスして、ウェブページの取得に要する時間を測定します。測定対象はもちろんWordPressサイトです。測定期間は「7日間」、「5分間隔で2回」実行しています。「7日×24時間×(60/5)×2」となり、測定回数は約4,000回となります。より詳しい内容は こちらの記事 を参考にしてください。

From 400 to 800Use up and down arrows to move selectionTo 800Use up and down arrows to move upper selectionFrom 400Use up and down arrows to move lower selectionUse TAB select grip buttons or up and down arrows to change selectionFrom Day1 22:00 to Day8 19:00Use left and right arrows to move selectionFrom Day1 22:00Use left and right arrows to move left selectionTo Day8 19:00Use left and right arrows to move right selectionUse TAB to select grip buttons or left and right arrows to change selectionPHP7.0PHP5.6100%Chart created using amCharts library
  PHP7.0 PHP5.6
有効測定 4,025回 4,029回
棄却検定除外 0.70% (28) 0.60% (24)
棄却検定閾値 1.11秒 1.12秒
エラー 0.17% (7) 0.07% (3)
中央値 0.48秒 0.55秒
平均値 0.44秒 0.49秒
ばらつき/標準偏差 0.14秒 0.15秒
変動係数 31.8% 30.6%
測定結果について
有効測定はエラーを省いた回数を示します。
測定実行のタイミングによりサーバーやネットワークの状態(混雑具合)が変動します。集計に影響を与える一時的な異常値(外れ値)を棄却検定「Grubbs' test(α=0.001)」により省いています。これは測定サーバー側の異常を省く意味もあります。
ばらつき(標準偏差)は、レスポンスの 約68%平均値 ± ばらつき に、 約95%平均値 ± ばらつき×2 に収まることを示します。つまり、ばらつきが小さいほどレスポンスが安定していることになります。
変動係数は「平均値に対する変動の割合」を示します。平均値(処理時間)が同じであっても、変動係数が大きい方の処理時間がばらつくことになります。

同じサーバー、同じ測定期間、PHPのバージョンのみが異なる環境での比較となります。

各数値についての説明は省きますが、グラフを見るだけでも確実にPHP7で稼働しているWordPressのレスポンス性能が向上していることが分かります。t検定による有意差(p<0.01)も確認でき、まったく同じ環境(サーバー)であっても、PHPバージョンの差でレスポンス性能が変化することを確認できます。

PHP7に変更することでレスポンス性能が 約10% 高速化しています。謳い文句は「PHP5の2倍」となっていますが、実際にはデータベースやネットワークの性能も影響します。PHPの処理性能だけ向上したところで、トータル的なレスポンス性能が劇的に向上するわけではありません。

ただし、今回の測定対象は「標準テーマ」かつ「プラグインなし」の状態です。PHPの処理が多くなるサイト、例えば「多機能なWordPressテーマを採用」「多くのプラグインを導入済み」などの条件であれば、PHP7の効果がより大きくなるでしょう。すでにPHPの処理部分がボトルネックと判明しているサイトであれば、すぐにでもPHP7に変更するべきです。

処理性能の比較

WordPressをインストールしたウェブサイト(サーバー)を利用します。

  • 「ランダムな3,000文字/記事」の投稿と削除
    • 100記事をまとめて投稿、投稿後に全削除
    • 1記事ごとの生成処理を含む
  • 投稿と削除はWordPressの標準関数を利用
    • wp insert post、wp delete post

これらの処理を 5分間隔 で実行し、一連の処理時間を測定します。データセンター内(またはサーバー内)で完結する処理なので、外部ネットワーク環境の影響を受けません。

より詳しい内容は こちらの記事 を参考にしてください。

From 2,000 to 4,000Use up and down arrows to move selectionTo 4,000Use up and down arrows to move upper selectionFrom 2,000Use up and down arrows to move lower selectionUse TAB select grip buttons or up and down arrows to change selectionFrom Day1 00:00 to Day2 00:00Use left and right arrows to move selectionFrom Day1 00:00Use left and right arrows to move left selectionTo Day2 00:00Use left and right arrows to move right selectionUse TAB to select grip buttons or left and right arrows to change selectionPHP7.0PHP5.6100%Chart created using amCharts library
  PHP7.0 PHP5.6
有効測定数 864 864
棄却検定除外 1.27%(11) 1.16%(10)
棄却検定閾値 3.41秒 4.00秒
エラー 0%(0) 0%(0)
中央値 2.23秒 2.68秒
平均値 2.28秒 2.73秒
ばらつき 0.25秒 0.27秒
変動係数 11.0% 9.89%
測定結果について
72時間(3日間) の測定結果です。X軸は時刻(0時~24時)を表し、各時刻の値は3日間の平均値です。有効測定数はエラーを省いた実測定数です。
測定のタイミングによりサーバーの負荷状態(混雑具合)が変動します。集計に影響を与える一時的な異常値(外れ値)を棄却検定「Grubbs' test(α=0.001)」により省いています。
ばらつき (標準偏差)は、処理の 約68%平均値 ± ばらつき に、約95%平均値 ± ばらつき×2 に収まることを示します。つまり、ばらつきが小さいほど処理性能が安定しているといえます。

こちらも同じサーバーかつ同じ期間に測定した結果です。データベース処理時間も含まれますが、同じサーバーなので処理性能の差はありません。処理時間(平均値)の差は、PHPの処理性能の差となります。こちらもt検定による有意差(p<0.01)を確認できます。

PHP7の処理性能が 約16% 高速化しています。先ほどのレスポンス性能と同程度の性能向上であり、今回の条件(標準テーマ&プラグインなし)であれば、トータル的に1割程度の性能向上が見込めることになります。

まとめ

PHP7に変更することで、確実にレスポンス性能が向上することが分かりました。今回の測定対象では 10%強 改善されています。

測定サイトは「プラグインなしの標準テーマ」を採用しているため、PHPの処理も最低限でしょう。それでも確実に効果があるため、多くのカスタマイズを施しているサイトであれば、よりPHP7の恩恵が大きくなります。

少しでもレスポンス性能を向上させたいのであれば、PHP7へ移行してもよいと思います。しかし、現状のレスポンス性能に不満がなければ、互換性を犠牲にしてまで変更する必要はありません。

関連記事

BLOG

UPDATE