zoukankan      html  css  js  c++  java
  • nginx、php-fpm、swoole HTTP/TCP压测对比

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

    软硬件:

      OS :boot2docker Linux
      cpu: i5-6500 单核
      内存:1G
      PHP Vsersion:7.2.9
      swoole:4.1.2

      nginx:1.12

      

    均使用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

     

  • 相关阅读:
    在ConcurrentModificationException异常上的联想
    记录一下自己爬虎牙LOL主播的爬虫思路
    ajax解决跨域问题
    解决多线程下数据库操作问题
    浅谈时间复杂度
    想一下,最大公约数怎么求
    IO流与IO缓冲
    循环移位
    3Sum探讨(Java)
    Two Sum(两个数的相加)
  • 原文地址:https://www.cnblogs.com/Dong-Ge/p/9639009.html
Copyright © 2011-2022 走看看