本次测试是在win7下docker环境中进行压测,共创建一个nginx容器、一个php-fpm容器和一个swoole容器,客户端请求nginx服务器,nginx接收用户访问请求并转发给php-fpm,php-fpm接收数据并发送数据给swoole服务器

均使用docker环境下进行ab压测并发100,1万次请求,结果如下:

压测数据表明,性能:swoole TCP 长连接 > SWOOLE HTTP > PHP-FPM,原因在于swoole创建的TCP连接在PHP请求结束或者调用$cli->close时并不会关闭,下一次执行connect调用时会复用上一次创建的连接,而HTTP是基于TCP连接的,如果连接被频繁地启动然后断开就会花费很多资源在TCP三次握手以及四次挥手上,效率比较低

具体压测数据如下:

1、swoole HTTP连接:

docker run –rm –net=host jordi/ab -n 10000 -c 100 http://test.epweike.net/

10000连接数并发100访问 只开启一个swoole client连接,qps:918

 

10000连接数并发100访问 ,开启1000个swoole client连接,qps:872

 

2、SWOOLE TCP连接

 docker run –rm –net=host jordi/ab -n 10000 -c -k 100 http://test.epweike.net/

10000连接数并发100访问 只开启一个swoole client连接,qps:1733

 

 

10000连接数并发100访问 ,开启1000个swoole client连接,qps:1744

 

  

 

3、nginx+php-fpm

10000连接数并发100访问 ,不开swoole client连接,原生php输出,qps:115

 

 

版权声明:本文为Dong-Ge原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Dong-Ge/p/9639009.html