2017年2月9日に、とうとうロリポップ!がPHP7.1.1に対応しました。
PHP7 リリース後、同社の heteml(ヘテムル) を含め、他社ではどんどん PHP7 に対応していったので、ロリポップ!の多くのユーザーはこの日を長らく待ち望んでいたことでしょう。
処理性能の高さが魅力の PHP7 ですが、ロリポップ!側での検証によると、PHP5.6 と PHP7.1.1(モジュール版)との比較では、パフォーマンスが約5.5倍に向上したとのこと。
今回は、早速ロリポップ!での PHP7.1.1 の概要のチェックと、実力の検証を行ってみました。
ロリポップ!の PHP7.1.1 対応の概要と変更点
ロリポップ!では CGI版とモジュール版の PHP が利用できますが、今回提供された PHP7.1.1 は、以下のように各プランで利用できるモードが異なります。
エントリー | ライト | スタンダード | エンタープライズ | |
---|---|---|---|---|
PHP7.1.1(CGI版) | ○ | ○ | ○ | ○ |
PHP7.1.1(モジュール版) | × | × | ○ | ○ |
また、今回の PHP7.1.1 のリリースに伴い、PHP5.5 は新規で利用できなくなりました。また、以前利用できていた PHP5.6 のモジュール版も利用できなくなり、PHP5.6 で利用可能なのは CGI版だけになっています。
まとめると、以下のような感じです。
以前 | 今後 | |
---|---|---|
PHP 5.5(CGI モード) | ○ | × |
PHP 5.6(CGI モード) | ○ | ○ |
PHP 5.6(モジュールモード) | ○ | × |
PHP 7.1.1(CGI モード) | - | ○ |
PHP 7.1.1(モジュールモード) | - | ○ |
現在 PHP 5.5 を利用できているユーザーもいずれ利用できなくなると思いますので、特にこだわりがない場合は、この機会にパフォーマンスの高い PHP7.1.1 に変更してしまうのがいいかもしれませんね。
※追記
なお、現在 PHP5.6 のモジュール版を利用できているユーザーは、今後もモジュール版の利用は可能で、一旦他のバージョンに変更しても、PHP5.6 モジュール版に戻すことができます。
PHP7.1.1のパフォーマンスをベンチマークツールでチェック
では、実際に PHP7.1.1 のパフォーマンスがどのくらいアップするのかをベンチマークツールでチェックし、他のバージョンと比較してみましょう。
上に書いたように、現在ロリポップ! で利用できる PHP は、PHP7.1.1(モジュール版)・PHP7.1.1(CGI版)・PHP5.6(CGI版)の 3つです。この 3つを切り替えて、平日に時間帯を変えて6回ほどテストを実施しました。
検証は当サイトで紹介しているロリポップ!の最上位プランである、「エンタープライズプラン」で実施しています。
まずは、「PHP Benchmark」から。
「PHP Benchmark」は、PHP で簡単な計算を行い、その処理にかかった時間を出力します。
表内の数値は「既定の処理が終わるまでに要した時間(単位:ミリ秒)」で、パフォーマンスが高いほうが処理時間が短いので、結果の数値がより小さいほうがパフォーマンスは高いといえます。
PHP Benchmark
最小値 | 最大値 | 12回の平均値 | 中間値の平均値 | 最大値と最小値の差 | |
---|---|---|---|---|---|
PHP7.1.1(モジュール版) | 9 | 18 | 18 | 18 | 9 |
PHP7.1.1(CGI版) | 8 | 16 | 14 | 14 | 8 |
PHP5.6(CGI版) | 21 | 41 | 35 | 36 | 20 |
PHP7.1.1 はモジュール版と CGI版ではそれほど大きな差はありません。若干 CGI版のほうがパフォーマンスが高く、平均値も CGI版のほうが低いので、ばらつきが少ないようにも見えますが、ほぼ差はないと言えます。
一方、PHP7.1.1 と PHP5.6 を比較すると、やはり PHP5.6 のほうがパフォーマンスが劣りますね。なお、PHP5.6 に関しては、前回測定した数値と比較してもほとんど変わりがありませんでした。
ApacheBench
次に、「ApacheBench」 の結果です。
ApacheBench は、単一のファイルの処理に対する Webサーバーのパフォーマンスを測定します。様々な情報が出力されるのですが、その中で「1秒間に処理したリクエスト数(Requests per second)」を比較しています。
パフォーマンスが高いほうが処理を多くできていることになるため、「1秒間に処理したリクエスト数」の数値が大きいほうがパフォーマンスが高いです。
また、モジュール版の場合、サーバーの高負荷時に高速なレスポンスを返せる傾向があるため、テキスト量やや少なめ(2,000文字程度)の WordPress サイトとテキスト量をかなり多くした(40万文字弱)の WordPress サイトも比較しています。
テキスト量少 | テキスト量多 | |
---|---|---|
PHP7.1.1(モジュール版) | 382.80 | 378.53 |
PHP7.1.1(CGI版) | 324.60 | 348.83 |
PHP5.6(CGI版) | 296.20 | 286.24 |
いずれのパターンでも、PHP7.1.1(モジュール版)が最も高いパフォーマンスがでました。といっても、PHP7.1.1(CGI版)との差はあまりないようですね。
一方、PHP5.6(CGI版)との差は結構出ています。やはり、PHP7.1.1のパフォーマンスの向上は、かなりのものですね。
ただ、ちょっと気になったのは、夜間帯にパフォーマンスがかなり低下したこと。
長文・短文いずれのパターンでも、夜間帯になると平均で300近く数値が落ちました。昼間では500程度の数値が出ていたモジュール版でも、夜間では 2ケタになってしまうなど、人気のレンタルサーバーなだけあり、夜間帯の負荷はかなり高そうです。
利用したのは最上位の「エンタープライズプラン」の結果なので、収容人数の多い下位プランの場合は、もっと差が出るかも知れません。
とはいえ、サイトの表示速度にはそれほど影響はしていないようだったので、実際に利用する上ではそれほど気にしなくてもいいのかもしれません。
<前回実施した測定の詳細記事>
・PHP Benchmark でレンタルサーバー各社のパフォーマンスを比較)
・PHPモジュールモードとCGIモードの違いとパフォーマンスの差を検証
「ロリポップ!」が待望のPHP7.1.1に対応 その実力を徹底検証!
以上、ロリポップ!の PHP7.1.1 への対応の概要と実際のパフォーマンスを確認してみました。
ロリポップ!でも今回リリースされた PHP7.1.1 では、PHP5.6 と比較して高いパフォーマンスが出ることがわかりました。
また、以前行った「CGI版」と「モジュール版」のパフォーマンス比較では、それほど違いが出なかったのですが、今回の検証ではハッキリとモジュール版のほうが高いパフォーマンスが出ていましたね。
夜間帯は ApacheBench でのパフォーマンスがかなり低下したと書きましたが、この点についても PHP7.1.1(CGI版)がPHP5.6 と同じくらいに低下したのに比べ、PHP7.1.1(モジュール版)ではかなり低下率が抑えられていたので、やはりモジュール版は安定性が高いなと実感できました。
パフォーマンス・安定性ともに高くなったロリポップ!の PHP7.1.1(モジュール版)、積極的に使いたいですね。
・ロリポップ「エンタープライズ」の検証・評価レビュー
・GMOペパボ対決!「heteml(ヘテムル)」v.s.「ロリポップ(エンタープライズ)」徹底比較