PHP7採用のエックスサーバー!確実に向上するWordPressのレスポンス性能
エックスサーバー(XSERVER)はPHP7に対応しており、ドメインごとにバージョンを切り換えることができます。PHP7は様々な部分が改良されていますが、最も大きな改善点は「PHP5の2倍以上の実行速度!」でしょう。
おそらく「平均的に」または「特定の条件で」2倍となることは、想像に難くありません。ほとんど変わらない部分や大幅に向上した機能もあるでしょう。レンタルサーバーのユーザーであれば、WordPressの処理性能がどれだけ向上するかが最も気になるところです。
すでに多くの方がPHP7に移行しているようですが、「(何となく)速くなった!」という体感的かつ主観的な評価が多く、具体的なデータを載せている記事がほとんどありません。ここでは実際にPHP5とPHP7で稼働させたWordPressの処理性能を比較した結果を紹介します。
レスポンス性能の比較
測定用サーバーから定期的にアクセスして、ウェブページの取得に要する時間を測定します。測定対象はもちろんWordPressサイトです。測定期間は「7日間」、「5分間隔で2回」実行しています。「7日×24時間×(60/5)×2」となり、測定回数は約4,000回となります。より詳しい内容は こちらの記事 を参考にしてください。
|
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分間隔 で実行し、一連の処理時間を測定します。データセンター内(またはサーバー内)で完結する処理なので、外部ネットワーク環境の影響を受けません。
より詳しい内容は こちらの記事 を参考にしてください。
|
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へ移行してもよいと思います。しかし、現状のレスポンス性能に不満がなければ、互換性を犠牲にしてまで変更する必要はありません。