共计 1113 个字符,预计需要花费 3 分钟才能阅读完成。
【前言】
笔者使用 wrk,是为了测试 nginx 转发报文的时候 set_proxy_header 规则,然后发现 wrk 尤其的好用,所以在这里写下来,以后用的时候还能查一查。
【安装】
不讲概念了,直接讲安装。
•从 github 上下载源码
git clone https://github.com/wg/wrk
•然后 cd 到 wrk 目录,进行安装
make
可能有一些包没有,导致 git,make 命令不能顺利执行,安装即可。
【基本参数】
以下是使用 wrk 查看到的一些基本参数信息
-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 的详细版本信息 |
N 代表数字参数,支持国际单位 (1k, 1M, 1G)
T 代表时间参数,支持时间单位 (2s, 2m, 2h)
wrk -c 20 -t 2 -d 2m -H “host: dream.com” http://192.168.100.1:80/manage
建立 20 个 TCP 连接,使用两个线程,用时 2 分钟,携带 HTTP 头 “host:dream.com”,对 http://192.168.100.1:80/manage 进行压测。
【输出内容】
wrk -c 20 -t 2 -d 10s -H “host: dream.com” http:http://10.XX.XX.XX:80/manage
Latency 延迟时间
Req/Sec 每秒处理的请求数
平均值(Avg),标准偏差(Stdev),最大值(Max),正负一个标准差占比(+/-) Stdev
一般主要关注 Avg 和 Max。Stdev 如果太大说明样本本身离散程度比较高,有可能系统性能波动很大。
50% 的请求 31.88 秒返回
同上
10.02s 处理了 1992 个请求数,读取了 2.44M 的数据。
线程总共平均 1 秒完成 198.88 个请求。
每秒读取 249.19KB。
也可以发送 POST 请求进行压测
wrk -c 20 -t 2 -d 10 -H “host: dream.com” –script=post.txt http://10.XX.XX.XX:80/manage –latency –timeout 1s
post.txt
wrk.method = “POST”
wrk.body = “x=1&y=2”
wrk.headers[“Content-Type”] = “application/x-www-form-urlencoded”
解析同上。
: