PHP7がリリースされてから1年以上が経過しました。
「PHP7は速い」「5より2倍高速、3倍高速」とか度々目にしますが、導入してもプラグインの対応が不十分で満足に使えないだろうと思いずっと触らずにいました。
今回のサーバ環境の見直しを好機と考え、PHP7を含めたPHPバージョン違いによるWordPressの処理速度がどれくらい変わるのかを調べてみました。
かなり明確な違いが出たのでよかったら参考にしてみてください。
PHPバージョンとWordPress処理速度
環境
- コアサーバー
(CORE-A)
- WordPress 4.7.2
- テーマはTwenty Sixteen v1.3
- プラグインは「WP Multibyte Patch」「001 Prime Strategy Translate Accelerator」の2つ
このブログが動いているコアサーバー(CORE-A)に新しいWordPressを設置して検証環境にしました。
コアサーバーでは、CGIは標準でFastCGIで動くのでFastCGIのまま動かします。PHPバージョンの変更は、コアサーバーの管理パネルから行います。
WordPressはインストールしただけの状態で記事は増やしていません。テーマにはTwenty Sixteenを使います。
プラグインには、マルチバイト文字を処理する「WP Multibyte Patch」と翻訳ファイルをキャッシュする「001 Prime Strategy Translate Accelerator」の2つのみ導入しました。翻訳ファイルのキッシュ機能はパフォーマンスを考えると基本的に導入する機能なので検証環境に導入しました。
計測方法
自宅サーバからabコマンドで3回計測を行い、3回の平均値を計測します。
自宅からコアサーバーまでのpingは約11msです。abコマンドのオプションは、リクエスト数50、同時接続数4です。自宅サーバは2コアなので同時接続数は少な目にしています。
計測結果
PHP Version | リクエスト数/秒 | 対比 | 処理時間/件 |
---|---|---|---|
5.3 | 10.13 | – | 395.26ms |
5.4 | 10.23 | 101.02% | 392.16ms |
5.5 | 32.43 | 320.14% | 123.37ms |
5.6 | 32.23 | 318.16% | 124.48ms |
7.0 | 52.55 | 518.76% | 76.19ms |
7.1 | 51.72 | 510.56% | 77.45ms |
計測結果は、7が突出して良いという結果になりました。
5.5未満(5.3と5.4)と比較して5.5以降のパフォーマンスがいいのはOPcacheによるものです。コアサーバーでは5.5以降にはOPcacheが導入されています。OPcacheなしだと12-15リクエスト/秒程度にパフォーマンスが下がります。
5.5未満ではOPcacheの代わりにAPCを導入する手もありますが、APCの導入にはFastCGIからCGIに変更する必要があるので一長一短です。
7は、5.3より3倍以上、5.5と5.6より約1.6倍パフォーマンスが上がっています。5.5と5.6が思ったより高速だったので7の伸びがイマイチですが、1リクエストあたりの処理時間(処理時間/件)が0.1秒未満と十分高速です。
7.0と7.1では一般的なベンチマークでは7.1の方が若干高速という結果が出ていますが、今回の計測ではほぼ同じ結果になりました。また、確認のため何度か計測してみましたが、7.1は結果のバラツキが大きく、7.0の方が安定感がありました。
gzip圧縮あり/なし
ついでなのでgzip圧縮あり/なしについても計測してみました。
gzip圧縮はWebサーバ(Apache)で行い、PHPは高速で安定感の高かった7.0で行いました。
圧縮 | 転送サイズ | 処理件数/秒 | 処理時間/件 |
---|---|---|---|
無し | 9,340bytes | 52.55 | 76.19ms |
有り | 3,322bytes | 58.14 | 68.80ms |
gzip圧縮すると転送サイズが約35%に圧縮され、1秒あたりの処理件数が約10%向上しました。圧縮による負荷の影響もなさそうです。
まとめ
簡単な検証でしたが、PHP7が圧倒的に速いという結果になりました。
5.5以降でもOPcacheなしだとパフォーマンスが落ちるので一概に5.5以降に移行した方がよいとは言えませんが、OPcacheありなら新しいバージョンへ移行するのが得策です。
結果を踏まえてPHP7に移行してみようと思いましたが、一部のプラグインにより表示に不具合が発生したので現在はPHP5.6で動かしています。まだまだPHP7への対応は不十分のようです。
PHP7に移行しました。このサイトのパフォーマンスは、YASAKANI Cache利用で約40リクエスト/秒になりました。素のWordPressから少し落ちてますが、コンテンツが入りプラグインも多く入る環境としては十分だと思います。
コメント