wrk压测工具的安装和使用

 

通过git编译安装(需gcc支持)

#下载wrk
git clone https://github.com/wg/wrk
#进入目录
cd wrk
#编译
make

基本用法

需在wrk目录下执行

wrk -t1 -c10 -d2s https://www.baidu.com/

2、post请求:

lua脚本编写:

wrk.method = "POST"
wrk.body = "{\"name\":\"naninfo\",\"pList\":[\"557467528\",\"557470362\"],\"version\":4,\"pversion\":\"t\"}"
wrk.headers["Content-Type"] = "application/json"
wrk.headers["clientId"] = "3"
wrk.headers["orgId"] = "10"

wrk目录下执行:

 wrk -t1 -c10 -d2s -s /data/cmp/wrk/scripts/dds/getDataList-test.lua --latency http://cmp-dds-service-port.new-dev.cloud.app.ncloud.com/service/download/partition/getDataList

 结果:

GET请求:

新建lua脚本:getData-test.lua

request = function()
  wrk.headers["clientId"] = "103"
  wrk.headers["orgId"] = "1" 
  path = "/service/download/partition/getData?name=info&productVersion=t&layerName=road_attribute&pame=557466408"
  return wrk.format("GET", path)
end

 执行:

 wrk -t1 -c10 -d2s -s /data/cmp/wrk/scripts/dds/getData-test.lua --latency http://cmp-dds-service-port.new-dev.cloud.app.ncloud.com/

结果如图: 

参数含义: 

使用方法: wrk <选项> <被测HTTP服务的URL>                           

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

  <N>代表数字参数,支持国际单位 (1k, 1M, 1G)
  <T>代表时间参数,支持时间单位 (2s, 2m, 2h)

Running 30s test @ https://www.baidu.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 (QPS:平均每秒处理完成59658.29个请求)
Transfer/sec:     22.79MB (平均每秒读取数据22.79MB)

注意以下几点:

3. 报错 Non -2xx or -3xx错误:检查参数配置是否有误

 

4. 报timeout:设置延迟时间--timeout=30s
5. 如果统计结果均为0,看日志是否已执行,如果已经执行则调整时间参数
6. 切记:参数c>=t,参数c最优取值为CPU核数的2——4倍,并发不是很大的时候,一般取2倍
7. wrk会根据线程数,链接数,压测执行时间,调整一秒的并发量,需根据日志查看,QPS计算会平均执行时间。
8. 命令执行中,需实时监测日志、内存、CPU

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值