PHP7.3、7.2、5.6性能比較

田島優也

新たにリリースされたPHP7.3、まだ広く使用されているPHP7.2と全サポート終了間近のPHP5.6各環境で、Apache Benchによる性能比較を行いました。対象は、WordPress5.0のURLです。結果、PHP5.6とKUSANAGIのPHP7.2間で14倍、さらにPHP7.2と7.3間で1.2倍ほど性能が向上していることが分かりました。これは、より新しいPHPのバージョンが高性能であることを示しています。

2018年12月6日にPHP7.3がリリースされました
それにともないKUSANAGIのPHP7環境を7.3にアップグレードする対応もリリースしております。

そこで今回はPHP7.3、PHP7.2そして2018年12月31日にセキュリティサポートを含む全てのサポートが終了してしまうPHP5.6環境に対してApache Benchを行い性能を比較してみました。

アクセスしたURLはWordPress5.0をインストールした直後のTOPページです。

実施した環境に関しては以下の通りです。PHP7.2と7.3に関してはKUSANAGIの環境ですが、PHP5.6に関しては素のCentOSで導入可能なミドルウェアに加えてPHP5.6を導入した環境です。

バージョン インスタンスサイズ OS
PHP 7.3.0 Microsoft Azure Standard_B2s(2vCPU 4GiBメモリ) CentOS7(KUSANAGI)
PHP 7.2.12 Microsoft Azure Standard_B2s(2vCPU 4GiBメモリ) CentOS7(KUSANAGI)
PHP 5.6.39 Microsoft Azure Standard_B2s(2vCPU 4GiBメモリ) CentOS7

なお、PHP5系につきましては、現在世界で最も稼働しているPHPのバージョンということで、特にチューニングを施していないWordPressサイトにおいては、この結果と近しいものになると思われます。
下記の情報源によりますと、2018年12月11日現在ではPHP5系の世界シェアは75.2%ということです。
https://w3techs.com/technologies/details/pl-php/all/all

結果は下記の通りです。PHP5.6とKUSANAGIのPHP7.2では14倍の性能差がありますが、PHP7.2と7.3では更に1.2倍ほど性能が向上しています。

PHPのバージョン Requests per second
7.3 144.22
7.2 128.18
5.6 9.10

結果詳細

それぞれの詳細結果は下記の通りです。

PHP7.3

This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking php73.example.jp (be patient)


Server Software:        nginx
Server Hostname:        php73.example.jp
Server Port:            80

Document Path:          /
Document Length:        10539 bytes

Concurrency Level:      100
Time taken for tests:   6.934 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      10908000 bytes
HTML transferred:       10539000 bytes
Requests per second:    144.22 [#/sec] (mean)
Time per request:       693.392 [ms] (mean)
Time per request:       6.934 [ms] (mean, across all concurrent requests)
Transfer rate:          1536.27 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.8      0       4
Processing:    24  667 126.8    691     971
Waiting:       19  667 126.8    691     971
Total:         24  668 126.2    691     971

Percentage of the requests served within a certain time (ms)
  50%    691
  66%    708
  75%    719
  80%    727
  90%    754
  95%    778
  98%    822
  99%    900
 100%    971 (longest request)

PHP7.2

This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking php72.example.jp (be patient)


Server Software:        nginx
Server Hostname:        php72.example.jp
Server Port:            80

Document Path:          /
Document Length:        10539 bytes

Concurrency Level:      100
Time taken for tests:   7.802 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      10908000 bytes
HTML transferred:       10539000 bytes
Requests per second:    128.18 [#/sec] (mean)
Time per request:       780.176 [ms] (mean)
Time per request:       7.802 [ms] (mean, across all concurrent requests)
Transfer rate:          1365.38 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.7      0       3
Processing:    23  751 142.4    777    1121
Waiting:       19  751 142.4    776    1121
Total:         23  752 141.8    777    1121

Percentage of the requests served within a certain time (ms)
  50%    777
  66%    797
  75%    815
  80%    825
  90%    849
  95%    866
  98%    957
  99%   1009
 100%   1121 (longest request)

PHP5.6

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 13.78.66.204 (be patient)


Server Software:        Apache/2.4.6
Server Hostname:        13.78.66.204
Server Port:            80

Document Path:          /
Document Length:        10640 bytes

Concurrency Level:      100
Time taken for tests:   109.842 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      10897000 bytes
HTML transferred:       10640000 bytes
Requests per second:    9.10 [#/sec] (mean)
Time per request:       10984.182 [ms] (mean)
Time per request:       109.842 [ms] (mean, across all concurrent requests)
Transfer rate:          96.88 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1   11  14.8      8      61
Processing:   305 10770 2329.7  10927   17717
Waiting:      193 9646 2114.2   9683   16386
Total:        306 10781 2330.0  10931   17728

Percentage of the requests served within a certain time (ms)
  50%  10931
  66%  11063
  75%  11151
  80%  11227
  90%  11677
  95%  15496
  98%  16532
  99%  17047
 100%  17728 (longest request)

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解