1.2 压测数据对比
目标
- 对比在相同硬件条件下,PHP Yii2框架在PHP-5.6及PHP7下echo hello world的QPS,并观察平均响应时间及CPU。
- 对比现有某服务在PHP-5.6及PHP7下的QPS
工具
ApacheBench即ab,ab -n xx -c xx -k http://www.domain.com/
硬件
aws c4.xlarge(4核8G)
Hello World
PHP-5.6/Yii2
开启opcache,64个php-fpm进程,输出hello world
n | c | qps | 平均响应时间(ms) | CPU | |
---|---|---|---|---|---|
10000 | 1 | 662.73 | 1.509 | 6% | |
50000 | 10 | 1435.35 | 6.967 | 76% | |
500000 | 20 | 1577.16 | 13.375 | 83% | |
500000 | 50 | 1626.09 | 145.953 | 89% |
PHP-7/Yii2
开启opcache,64个php-fpm进程,输出hello world
n | c | qps | 平均响应时间(ms) | CPU | |
---|---|---|---|---|---|
10000 | 1 | 854.81 | 1.170 | 18% | |
50000 | 10 | 2008.32 | 4.979 | 62% | |
500000 | 20 | 2186.90 | 9.145 | 65% | |
500000 | 50 | 2304.98 | 21.692 | 69% | |
500000 | 200 | 2331.93 | 85.766 | 69% |
某服务
- 1次Redis Get
- 1次 MongoDB Query
- 2个广告接口
- 2个业务接口
PHP-5.6/Yii2
n | c | qps | 平均响应时间(ms) | CPU | |
---|---|---|---|---|---|
100 | 1 | 4.16 | 240.168 | 9% | |
5000 | 5 | 15.36 | 325.502 | 46% | |
5000 | 10 | 18.72 | 534.141 | 83% | |
5000 | 50 | 19.03 | 2627.159 | 99% |
PHP-7/Yii2
n | c | qps | 平均响应时间(ms) | CPU | |
---|---|---|---|---|---|
100 | 1 | 3.51 | 284.876 | 5% | |
5000 | 5 | 17.23 | 290.129 | 21% | |
5000 | 10 | 32.36 | 309.057 | 40% | |
5000 | 20 | 52.94 | 377.784 | 82% | |
5000 | 40 | 55.52 | 720.433 | 91% |
结论
- PHP-5.6升级PHP-7.0,Yii2框架的性能提升43%
- PHP-5.6升级PHP-7.0,某服务性能提升170%
- 单纯将业务升级PHP-7.0,能够提升很大的性能
links
- 目录
- 上一节: 传统php-fpm工作模式的问题
- 下一节: 小结