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

     

  • 相关阅读:
    关于javascript获取页面高度宽度
    regexp_substr在oracle9i的替换方案
    iOS-数据存储
    iOS-导入XMPP框架
    iOS-WWDC
    iOS-在Xcode中使用Git进行源码版本控制(转)
    iOS-AFN
    iOS-网络基础
    iOS-UIDynamic
    iOS-动画
  • 原文地址:https://www.cnblogs.com/Dong-Ge/p/9639009.html
Copyright © 2011-2022 走看看