资讯专栏INFORMATION COLUMN

MixPHP/Yii/CodeIgniter 并发压力测试

ashe / 1730人阅读

摘要:由于是基于的传统框架,如果使用的正常部署方式来对比,显得有些不公平,由于同时支持在中运行,所以此次测试的是部署在之中。你也来测试一下吧,

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。


CodeIgniter

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


MixPHP

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

public function actionIndex()
{
    return "Hello World";
}
开始测试

测试 Yii,QPS: 56.40

C:Serverapache24vc11in>ab -n 5000 -c 100 http://www.b.com/
This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
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:Serverapache24vc11in>ab -n 5000 -c 100 http://www.c.com/
This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
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:Serverapache24vc11in>ab -n 5000 -c 100 http://www.a.com/
This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
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 领先。

你也来测试一下吧,https://github.com/mixstart/m...

| Yii | 56.40 QPS
| CodeIgniter | 144.42 QPS
| MixPHP | 440.48 QPS

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30700.html

相关文章

  • #yyds干货盘点# 性能测试

    摘要:下面就性能测试的概念分类等知识点进行总结学习。综合数据量测试指和压力性能测试负载性能测试疲劳性能测试相结合的综合测试。 性能测试无论是在考试还是工作中,都是一个经常出现的话题,性能测试有助于确认被测系统是否能够支持性能需求,以及预期的负载增长等。性能测试不只是关注不同负载场景下的响应时间等指标,它也要通过测试来发现在不同负载场景下会出现的,例如速度变慢、内存泄漏等问题的原因。下面就...

    不知名网友 评论0 收藏0
  • jmeter---压力测试并发测试、吞吐量测试

    摘要:平时进行接口压力测试时会用到一个的工具。下载地址解压后进入双击即可进入可以设置中文很良心呀开始进入正题,哈哈压力测试新建一个测试计划创建线程组值得一提的是在设置的时间范围内请求完毕。 ...

    wangym 评论0 收藏0

发表评论

0条评论

ashe

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<