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

     

  • 相关阅读:
    Linux IO接口 监控 (iostat)
    linux 防火墙 命令
    _CommandPtr 添加参数 0xC0000005: Access violation writing location 0xcccccccc 错误
    Visual Studio自动关闭
    Linux vsftpd 安装 配置
    linux 挂载外部存储设备 (mount)
    myeclipse 9.0 激活 for win7 redhat mac 亲测
    英文操作系统 Myeclipse Console 乱码问题
    Linux 基本操作命令
    linux 查看系统相关 命令
  • 原文地址:https://www.cnblogs.com/Dong-Ge/p/9639009.html
Copyright © 2011-2022 走看看