• TCP/UDP压测工具
    • 异步客户端
    • 注意事项

    TCP/UDP压测工具

    Swoole提供了一套TCP/UDP压测工具,benchmark/run.php中,基于swoole_client+pcntl实现。与abhttp_bench等工具不同,run.php是基于多进程实现并发测试的。使用方法:

    1. php run.php -c 100 -n 10000 -s tcp://127.0.0.1:9501 -f long_tcp
    • -c 参数,并发的数量,会启动对应数量的进程用于测试
    • -n 参数,请求的总数量,-n 10000, -c 100,平均到每个子进程的数量为100
    • -s 参数,Server的IP:PORT
    • -f 参数,测试单元的名称,目前提供了long_tcp/short_tcp/udp/websocket 函数,可以自行实现单元测试函数
      测试完成后,打印的结果为:
    1. concurrency: 100 //并发数量
    2. request num: 10000 //请求总数
    3. lost num: 0 //失败次数
    4. success num: 10000 //成功次数
    5. total time: 0.157 //总耗时
    6. req per second: 63558 //qps,每秒处理的请求数
    7. one req use(ms): 0.015 //单个请求的平均时长,此结果目前不准确,请勿作为参考

    异步客户端

    benchmark目录下还提供了一个async.php异步压测工具,使用方法与同步压测脚本run.php相同。但底层使用了异步IO,因此可以支持更大规模的并发压测。

    注意事项

    • 压测请勿使用—enable-debug—enable-swoole-debug参数的版本
    • 压测的服务器程序中请勿使用echo打印内容到屏幕,否则会严重拉低测试分值