【发布时间】:2015-11-26 11:58:30
【问题描述】:
我试图在 Wordpress 服务器上重现这个比较 PHP 7 和旧版本的基准:http://talks.php.net/oz15#/wpbench
我的配置几乎相同,服务器有 i7、SSD、16GB RAM 和 debian。服务器软件是nginx。令人惊讶的是,我的结果与上面链接的结果有很大不同。
在我的测试中,Siege (https://www.joedog.org/siege-home/) 输出以下内容:
对于 PHP 7.0.0RC1:
siege -c100 -r100 http://10.22.255.133/wordpress/
** SIEGE 3.0.8
** Preparing 100 concurrent users for battle.
The server is now under siege.. done.
Transactions: 10000 hits
Availability: 100.00 %
Elapsed time: 131.61 secs
Data transferred: 95.77 MB
Response time: 0.75 secs
Transaction rate: 75.98 trans/sec
Throughput: 0.73 MB/sec
Concurrency: 56.98
Successful transactions: 10000
Failed transactions: 0
Longest transaction: 1.01
Shortest transaction: 0.04
对于 PHP 5.6.12:
siege -c100 -r100 http://10.22.255.133/wordpress/
** SIEGE 3.0.8
** Preparing 100 concurrent users for battle.
The server is now under siege.. done.
Transactions: 10000 hits
Availability: 100.00 %
Elapsed time: 63.41 secs
Data transferred: 95.77 MB
Response time: 0.03 secs
Transaction rate: 157.70 trans/sec
Throughput: 1.51 MB/sec
Concurrency: 4.45
Successful transactions: 10000
Failed transactions: 0
Longest transaction: 0.63
Shortest transaction: 0.01
查看交易率时,您可以看到 PHP 5 比 PHP 7 快两倍左右。我不敢相信。
另一个有趣的事实是,运行这个基准 (http://www.php-benchmark-script.com/) 导致 PHP 7 比 PHP 5 快大约 3 倍(当然在我也测试过 Wordpress 的同一台服务器上)。实测结果为:
- PHP 7.0.0RC1 | PHP 5.5.28
- 数学: 0.201 | 0.683
- 字符串操作: 0.271 | 0.77
- 循环: 0.166 | 0.486
- 如果其他: 0.12 | 0.295
我已经上传了两个 phpinfo() 文件以防万一:
- PHP 版本 7.0.0RC1:http://simsso.de/downloads/stackoverflow/php7.html
- PHP 版本 5.6.12-0+deb8u1:http://simsso.de/downloads/stackoverflow/php5.html
你知道为什么 PHP 7 在我使用 Wordpress 的测试中要慢得多吗?
启用 opcache PHP 7 实际上是 PHP 5 的两倍。感谢 Mjh 的提示!
我在随机填充的 WordPress 服务器上进行了以下测量。
Siege 现在为 PHP 7.0.0RC1 输出以下内容:
Transactions: 10000 hits
Availability: 100.00 %
Elapsed time: 62.14 secs
Data transferred: 604.20 MB
Response time: 0.02 secs
Transaction rate: 160.93 trans/sec
Throughput: 9.72 MB/sec
Concurrency: 3.77
Successful transactions: 10000
Failed transactions: 0
Longest transaction: 0.41
Shortest transaction: 0.01
和PHP 5.6.12:
siege -c100 -r100 http://10.22.255.133/wordpress/
** SIEGE 3.0.8
** Preparing 100 concurrent users for battle.
The server is now under siege.. done.
Transactions: 10000 hits
Availability: 100.00 %
Elapsed time: 119.98 secs
Data transferred: 604.20 MB
Response time: 0.60 secs
Transaction rate: 83.35 trans/sec
Throughput: 5.04 MB/sec
Concurrency: 49.86
Successful transactions: 10000
Failed transactions: 0
Longest transaction: 4.06
Shortest transaction: 0.04
【问题讨论】:
-
您是否关闭了测试的会话支持?另外,你是否在安装了 nginx 和 php-fpm 的同一台机器上运行了
siege? -
感谢您的回复!会话支持被禁用,Siege 正在本地网络中的另一台机器上运行。我还确保网络不是限制因素。
-
两个 php 版本的
php-fpm配置是否相同?此外,似乎没有为您的 php 7 启用 opcache,而它是为 php 5 启用的。仅此一项就可以产生巨大的差异.. -
感谢发布。每秒请求数很可能会更高,但我认为您对现在看到的结果相当满意。
-
我认为值得一提的是,Wordpress 在对“更快”版本的 PHP 进行基准测试方面也有过历史。 HHVM ~ 2-3 年前声称对大多数主要 PHP 5.2 框架的速度提高了 6 倍,但 Wordpress 的速度却不到 2 倍。仍然更快,但有点令人失望。 (抱歉,找不到参考)
标签: mysql wordpress nginx performance-testing php-7