1.wrk安装
- 下载wrk源码:https://github.com/wg/wrk
- 将源码包放到/usr/local/src下
unzip wrk-master.zip
cd wrk-master
make
ln -s /usr/local/src/wrk-master/wrk /usr/local/bin
wrk -t12 -c100 -d30s http://www.baidu.com
2.参数说明
- -t 需要模拟的线程数
- -c 需要模拟的连接数
- -d 测试的持续时间
- –timeout 超时的时间
- –latency 显示延迟统计信息
3.结果分析
Running 30s test @ http://www.baidu.com
12 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 345.96ms 381.29ms 2.00s 86.08%
Req/Sec 16.58 29.72 464.00 96.95%
4542 requests in 30.03s, 67.19MB read
Socket errors: connect 0, read 0, write 0, timeout 144
Requests/sec: 151.27
Transfer/sec: 2.24MB
1) 12 threads and 100 connections:用12个线程(-t)模拟100个连接(-c)。
一般线程不宜过多,核数的2到4倍就够了。
2) **Latency:**响应时间——平均值(Avg),标准偏差(Stdev),最大值(Max),正负一个标准差占比(+/-) Stdev。
3) **Req/Sec:**每个线程每秒钟的完成的请求数——平均值(Avg),标准偏差(Stdev),最大值(Max),正负一个标准差占比(+/-) Stdev。
4) 一般主要关注Avg和Max。Stdev如果太大说明样本本身离散程度比较高,有可能系统性能波动很大。
5) 4542 requests in 30.03s, 67.19MB read
30.03s总共完成的请求数和读取数据量。
6) Requests/sec: 151.27
线程总共平均每秒钟完成151.27个请求。
7) Transfer/sec: 2.24MB
每秒钟读取2.24MB数据量
发送POST请求
首先需要准备一个lua文件
vim post.lua
rk.method = "POST"
wrk.body = "{\"q\":1}"
wrk.headers["Content-Type"] = "application/json"
执行命令
wrk -t 10 -c 200 -d 30s --script=post.lua http://172.17.1.7:8081/test/saveData