wrk压测工具

介绍

wrk支持UNIX系统,不支持windows

使用了epoll,这意味着我们可以用少量的线程来跟被测服务创建大量连接,进行压测

安装

只要从github上下载wrk源码,在项目路径下执行make命令即可。

git clone https://github.com/wg/wrk
make

make之后,会在项目路径下生成可执行文件wrk,随后就可以用其进行HTTP压测了

基本使用

命令行敲下wrk,可以看到使用帮助

  Options:                                            
    -c, --connections >  跟服务器建立并保持的TCP连接数量  
    -d, --duration    >  压测时间           
    -t, --threads     >  使用多少个线程进行压测   
                                                      
    -s, --script      >  指定Lua脚本路径       
    -H, --header      >  为每一个HTTP请求添加HTTP头      
        --latency          在压测结束后,打印延迟统计信息   
        --timeout     >  超时时间     
    -v, --version          打印正在使用的wrk的详细版本信息
                                                      
  >代表数字参数,支持国际单位 (1k, 1M, 1G)
  >代表时间参数,支持时间单位 (2s, 2m, 2h)

简单压测

wrk -t8 -c200 -d30s --latency  "http://www.bing.com"

以上使用8个线程保持200个连接,对bing首页进行了30秒的压测,并要求在压测结果中输出响应延迟信息。以下对压测结果进行简单注释
输出:

Running 30s test @ http://www.bing.com (压测时间30s)
  8 threads and 200 connections (共8个测试线程,200个连接)
  Thread Stats   Avg      Stdev     Max   +/- Stdev
              (平均值) (标准差)(最大值)(正负一个标准差所占比例)
    Latency    46.67ms  215.38ms   1.67s    95.59%
    (延迟)
    Req/Sec     7.91k     1.15k   10.26k    70.77%
    (处理中的请求数)
  Latency Distribution (延迟分布)
     50%    2.93ms
     75%    3.78ms
     90%    4.73ms
     99%    1.35s 
  1790465 requests in 30.01s, 684.08MB read (30.01秒内共处理完成了1790465个请求,读取了684.08MB数据)
Requests/sec:  59658.29 (平均每秒处理完成59658.29个请求,也就是qps)
Transfer/sec:     22.79MB (平均每秒读取数据22.79MB)

你可能感兴趣的:(高并发)