【前言】 nginx
笔者使用wrk,是为了测试nginx转发报文的时候set_proxy_header规则,而后发现wrk尤为的好用,因此在这里写下来,之后用的时候还能查一查。 git
【安装】 github
不讲概念了,直接讲安装。 服务器
git clone https://github.com/wg/wrkapp |
makepost |
可能有一些包没有,致使git,make命令不能顺利执行,安装便可。 性能
【基本参数】 测试
如下是使用wrk查看到的一些基本参数信息 url
-c spa |
--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" |
解析同上。141592653,cheng.