压测工具wrk安装使用

压测工具wrk使用

linux环境


找一个目录

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

拉下代码后

make

等待一段时间....

wrk

参数说明一下

Options:                                           
    -c, --connections <N>  跟服务器建立并保持的TCP连接数量 
    -d, --duration    <T>  压测时间          
    -t, --threads     <N>  使用多少个线程进行压测
                                                    
    -s, --script      <S>  指定Lua脚本路径      
    -H, --header      <H>  为每一个HTTP请求添加HTTP头     
        --latency          在压测结束后,打印延迟统计信息  
        --timeout     <T>  超时时间    
    -v, --version          打印正在使用的wrk的详细版本信

放到全局

cp wrk /usr/bin

简单测试一下
wrk -t8 -c400 -d30s http://127.0.0.1:8080

复杂测试 post

编写post.lua脚本

wrk.method = "POST"
wrk.body   = '{"mobile": "13501603210","timestamp": "1627957620793","sign": "VrCtw7ctOY79XxxRkLCsYl6JNPrh/Iwm9="}'
wrk.headers["Content-Type"] = "application/json"

执行压测

 wrk  -t100 -c1000 -d1s --script=post.lua http://192.168.1.17:8888/alipayhome/api/whitelist

结果

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 (99分位的延迟:%99的请求在1.35s以内)
  1790465 requests in 30.01s, 684.08MB read (30.01秒内共处理完成了1790465个请求,读取了684.08MB数据)
Requests/sec:  59658.29 (平均每秒处理完成59658.29个请求)
Transfer/sec:     22.79MB (平均每秒读取数据22.79MB)



伍先生
  • 职业: 程序员,产品
  • 码龄: 5.1
  • 技能: PHP Go 前端
  • 微信: JwCode
  • 公众号/小程序: 渐悟分享