当前位置: 首页 > 后端技术 > PHP

MixPHP-Yii-CodeIgniter并发压力测试

时间:2023-03-29 14:18:37 PHP

MixPHP是基于Swoole的高性能框架,CodeIgniter是老牌轻量级框架,Yii是非常流行的框架。下面是三个框架的比较。由于Yii/CodeIgniter是基于Apache/PHP-FPM的传统框架,与MixPHP普通的Swoole部署方式相比似乎有点不公平。由于MixPHP同时支持运行在Apache/PHP-FPM中,所以本次测试的MixPHP部署在Apache中。环境虚拟机:4核,1G,使用ab工具进行压力测试,命令:ab-n5000-c100URLYiiYii关闭debug,设置为pro环境。默认控制器代码如下,输出一个HelloWorld。ab-n5000-c100http://www.b.com/ThisisApacheBench,版本2.3<$Revision:1757674$>版权所有1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/LicensedtoTheApacheSoftwareFoundation,http://www.apache.org/Benchmarkingwww.b.com(耐心等待)已完成500个请求已完成1000个请求已完成1500个请求已完成2000个请求已完成2500个请求已完成3000个请求已完成3500个请求已完成4000个请求已完成4500个请求已完成5000个请求已完成5000个请求服务器软件:Apache/2.2.32服务器主机名:www.b8.com端口服务器长度:9字节并发级别:100测试时间:88.659秒完成请求:5000失败请求:0总传输:1080000字节HTML传输:45000字节每秒请求数:56.40[#/sec](平均值)每个请求时间:1773.170[ms](平均值)每个请求时间:17.732[ms](平均值,跨所有并发请求)传输速率:11.90[Kbytes/sec]receivedConnectionTimes(ms)minmean[+/-sd]medianmaxConnect:001.0129Processing:1417654200.568848084Waiting:1416103741.968246690Total:1417664200.568848084WARNING:中值是连接的初始时间和平均值不在正常偏差范围内这些结果可能不那么可靠。在特定时间(毫秒)内服务的请求百分比50%68866%108775%140080%165790%302995%766598%1476099%24300100%48084(longestrequest)测试CodeIgniter,QPS:144.42C:\Server\apache24vc11\bin>ab-n5000-c100http://www.c.com/ThisisApacheBench,Version2.3<$Revision:1757674$>版权1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/已授权给Apache软件基金会,http://www.apache.org/Benchmarkingwww.c.com(请耐心等待)已完成500个请求已完成1000个请求已完成1500个请求已完成2000个请求已完成2500个请求已完成3000个请求已完成3500个请求已完成4000个请求已完成4500个请求已完成5000个请求已完成5000个请求服务器软件:Apache/2.2.32服务器主机名:www.c.com服务器端口:80文件路径:/文件长度:8字节并发级别:100测试时间34.621secondsCompleterequests:5000Failedrequests:0Totaltransferred:1075000bytesHTMLtransferred:40000bytesRequestspersecond:144.42[#/sec](mean)Timeperrequest:692.419[ms](mean)Timeperrequest:6.924[ms](mean,所有并发请求)传输速率:30.32[Kbytes/sec]receivedConnectionTimes(ms)minmean[+/-sd]medianmaxConnect:000.7122Processing:86891014.348013324Waiting:86861012.247813324Total:96891014.348013325WARNING:连接时间的中值和平均值是不在正常偏差范围内这些结果可能不那么可靠。在特定时间内(毫秒)服务的请求百分比50%48066%67375%81080%90290%123895%180898%333699%6037100%13325(最长请求)测试MixPHP,QPS:440.48C:\Server\apache24vc11\bin>ab-n5000-c100http://www.a.com/ThisisApacheBench,Version2.3<$Revision:1757674$>版权所有1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/已授权给Apache软件基金会,http://www.apache.org/Benchmarkingwww.a.com(请耐心等待)已完成500个请求已完成1000个请求已完成1500个请求uestsCompleted2000requestsCompleted2500requestsCompleted3000requestsCompleted3500requestsCompleted4000requestsCompleted5000requestsFinished5000requestsServerSoftware:Apache/2.2.32ServerHostname:www.a.comServerPort:80DocumentPath:/DocumentLength:12bytesConcurrencyLevel:1001Timetakenfor3tests:101Timetakenfor3测试secondsCompleterequests:5000Failedrequests:0Totaltransferred:1025000bytesHTMLtransferred:60000bytesRequestspersecond:440.48[#/sec](mean)Timeperrequest:227.026[ms](mean)Timeperrequest:2.270[ms](mean,across所有并发请求)传输速率:88.18[Kbytes/sec]receivedConnectionTimes(ms)minmean[+/-sd]medianmaxConnect:010.9125Processing:4222822.41510376Waiting:4221822.41410376Total:4222822.41610376一定时间内服务的请求百分比(ms)50%1666%6975%21480%36490%56195%76298%97899%1829100%10376(最长请求)结论虚拟机文件IO性能太差,Yii做300并发不直接响应,只好降到100并发。同架构MixPHP的测试结果领先。你也可以测试一下,https://github.com/mixstart/m...|易|56.40QPS|代码点火器|144.42每秒每秒|混合PHP|440.48每秒每秒