【Swoole系列】nginx、swoole、workerman本地环境性能对比

机器:Macbook Pro  CPU:8核  内存:16G  SSD硬盘
测试工具:ab
测试并发:一共发送1000个请求 ,一共100个客户端 。
PS:本来想把并发数弄大一些,奈何只要调大了就会报错:apr_socket_recv: Connection reset by peer (54),按照网上的资料说是ab的bug,把Apache重新安装就行,然后用新安装的ab替换旧的ab,然并卵。。 依然这个错误,所以就暂时先这样吧。
测试命令:
nginx:ab -n1000 -c100 -k http://localhost/test/index.php
workerman: ab -n1000 -c100 -k http://127.0.0.1:9999/
swoole:ab -n1000 -c100 -k http://127.0.0.1:9501/

nginx对应的 代码

 

workerman代码:

 

swoole代码

三个文件的代码都是最简单的输出hello world。

测试结果

Nginx结果

Workerman结果

Swoole结果

结果分析
每秒处理请求数 Requests per second:
nginx:7084.76
workerman:34917.24
swoole:65257.11

90%的客户端请求处理时间:
nginx:16毫秒
workerman:3毫秒
swoole:2毫秒

从这个结果可以看出来swoole的并发能力大概是nginx的9倍,是workerman的2倍(仅是当前测试环境,生产环境会有各种复杂的场景),由此可见swoole用来做web服务器比nginx和workerman性能高很多,稳定性就不清楚怎么样了
疑问:nginx和workerman比swoole性能低的原因是什么?性能都消耗在哪里了?

发表评论

邮箱地址不会被公开。 必填项已用*标注