php 并发 100 压测,MixPHP/Yii/CodeIgniter 并发压力测试

MixPHP 是一个基于 Swoole 的高性能框架,CodeIgniter 是一个元老级的轻量级框架,Yii 是一个非常流行的框架,以下是三个框架的对比。

由于 Yii/CodeIgniter 是基于 Apache/PHP-FPM 的传统框架,如果使用 MixPHP 的正常 Swoole 部署方式来对比,显得有些不公平,由于 MixPHP 同时支持在 Apache/PHP-FPM 中运行,所以此次测试的 MixPHP 是部署在 Apache 之中。

环境

虚拟机: 4 核,1G

使用 ab 工具压测,命令:ab -n 5000 -c 100 URL

Yii

Yii 关闭了 debug,并设置为 pro 环境。

默认控制器代码如下,输出一个 Hello World。

public function actionIndex()

{

return 'Hello World';

}

CodeIgniter

默认控制器代码如下,输出一个 Hello World。

public function index()

{

echo 'Hello World';

}

MixPHP

默认控制器代码如下,输出一个 Hello World。

public function actionIndex()

{

return 'Hello World';

}

开始测试

测试 Yii,QPS: 56.40

C:\Server\apache24vc11\bin>ab -n 5000 -c 100 http://www.b.com/

This is ApacheBench, Version 2.3

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.b.com (be patient)

Completed 500 requests

Completed 1000 requests

Completed 1500 requests

Completed 2000 requests

Completed 2500 requests

Completed 3000 requests

Completed 3500 requests

Completed 4000 requests

Completed 4500 requests

Completed 5000 requests

Finished 5000 requests

Server Software: Apache/2.2.32

Server Hostname: www.b.com

Server Port: 80

Document Path: /

Document Length: 9 bytes

Concurrency Level: 100

Time taken for tests: 88.659 seconds

Complete requests: 5000

Failed requests: 0

Total transferred: 1080000 bytes

HTML transferred: 45000 bytes

Requests per second: 56.40 [#/sec] (mean)

Time per request: 1773.170 [ms] (mean)

Time per request: 17.732 [ms] (mean, across all concurrent requests)

Transfer rate: 11.90 [Kbytes/sec] received

Connection Times (ms)

min mean[+/-sd] median max

Connect: 0 0 1.0 1 29

Processing: 14 1765 4200.5 688 48084

Waiting: 14 1610 3741.9 682 46690

Total: 14 1766 4200.5 688 48084

WARNING: The median and mean for the initial connection time are not within a normal deviation

These results are probably not that reliable.

Percentage of the requests served within a certain time (ms)

50% 688

66% 1087

75% 1400

80% 1657

90% 3029

95% 7665

98% 14760

99% 24300

100% 48084 (longest request)

测试 CodeIgniter ,QPS: 144.42

C:\Server\apache24vc11\bin>ab -n 5000 -c 100 http://www.c.com/

This is ApacheBench, Version 2.3

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.c.com (be patient)

Completed 500 requests

Completed 1000 requests

Completed 1500 requests

Completed 2000 requests

Completed 2500 requests

Completed 3000 requests

Completed 3500 requests

Completed 4000 requests

Completed 4500 requests

Completed 5000 requests

Finished 5000 requests

Server Software: Apache/2.2.32

Server Hostname: www.c.com

Server Port: 80

Document Path: /

Document Length: 8 bytes

Concurrency Level: 100

Time taken for tests: 34.621 seconds

Complete requests: 5000

Failed requests: 0

Total transferred: 1075000 bytes

HTML transferred: 40000 bytes

Requests per second: 144.42 [#/sec] (mean)

Time per request: 692.419 [ms] (mean)

Time per request: 6.924 [ms] (mean, across all concurrent requests)

Transfer rate: 30.32 [Kbytes/sec] received

Connection Times (ms)

min mean[+/-sd] median max

Connect: 0 0 0.7 1 22

Processing: 8 689 1014.3 480 13324

Waiting: 8 686 1012.2 478 13324

Total: 9 689 1014.3 480 13325

WARNING: The median and mean for the initial connection time are not within a normal deviation

These results are probably not that reliable.

Percentage of the requests served within a certain time (ms)

50% 480

66% 673

75% 810

80% 902

90% 1238

95% 1808

98% 3336

99% 6037

100% 13325 (longest request)

测试 MixPHP,QPS: 440.48

C:\Server\apache24vc11\bin>ab -n 5000 -c 100 http://www.a.com/

This is ApacheBench, Version 2.3

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.a.com (be patient)

Completed 500 requests

Completed 1000 requests

Completed 1500 requests

Completed 2000 requests

Completed 2500 requests

Completed 3000 requests

Completed 3500 requests

Completed 4000 requests

Completed 4500 requests

Completed 5000 requests

Finished 5000 requests

Server Software: Apache/2.2.32

Server Hostname: www.a.com

Server Port: 80

Document Path: /

Document Length: 12 bytes

Concurrency Level: 100

Time taken for tests: 11.351 seconds

Complete requests: 5000

Failed requests: 0

Total transferred: 1025000 bytes

HTML transferred: 60000 bytes

Requests per second: 440.48 [#/sec] (mean)

Time per request: 227.026 [ms] (mean)

Time per request: 2.270 [ms] (mean, across all concurrent requests)

Transfer rate: 88.18 [Kbytes/sec] received

Connection Times (ms)

min mean[+/-sd] median max

Connect: 0 1 0.9 1 25

Processing: 4 222 822.4 15 10376

Waiting: 4 221 822.4 14 10376

Total: 4 222 822.4 16 10376

Percentage of the requests served within a certain time (ms)

50% 16

66% 69

75% 214

80% 364

90% 561

95% 762

98% 978

99% 1829

100% 10376 (longest request)

结论

虚拟机文件IO性能太差,Yii 做300并发直接不响应,只好降低到100并发数,同样架构的测试结果 MixPHP 领先。

| Yii | 56.40 QPS

| CodeIgniter | 144.42 QPS

| MixPHP | 440.48 QPS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值