==================== 安装 ====================
https://github.com/wg/wrk/wiki
sudo yum -y groupinstall 'Development Tools'
sudo yum install -y openssl-devel git
git clone https://github.com/wg/wrk.git wrk
cd wrk
make
sudo cp wrk /usr/bin
==================== 使用 ====================
Usage: wrk <options> <url> Options: -c, --connections <N> Connections to keep open -d, --duration <T> Duration of test -t, --threads <N> Number of threads to use -s, --script <S> Load Lua script file -H, --header <H> Add header to request --latency Print latency statistics --timeout <T> Socket/request timeout -v, --version Print version details Numeric arguments may include a SI unit (1k, 1M, 1G) Time arguments may include a time unit (2s, 2m, 2h)
wrk -c100 -t4 -d100s http://localhost:9981/api/test
test.lua
wrk.method="POST"
wrk.body=[[ {"jsonKey": "jsonValue"} ]]
wrk.headers["Content-Type"]="application/json; charset=utf-8"
wrk -c100 -t4 -d100s -stest.lua --latency http://localhost:9981/api/test
==================== 测试结果 ====================
Running 10s test @ http://localhost:9981/api/test 4 threads and 1000 connections // 线程数设置为cpu核心数或其2倍,设置不同的连接数以观察吞吐量及响应时间情况 Thread Stats Avg Stdev Max +/- Stdev // 每条线程的状态 Latency 70.08ms 8.76ms 127.28ms 81.70% // 完成一个请求所需要的响应时间 Req/Sec 3.55k 581.40 4.91k 68.50% // 每秒完成的请求数 Latency Distribution 50% 68.65ms 75% 72.67ms 90% 80.40ms 99% 99.73ms // 99%的请求完成一个请求所需要的响应时间 141270 requests in 10.05s, 265.27MB read // 规定时间内总请求数及传送数据量 Requests/sec: 14053.75 // 每秒总共可以完成的请求数 Transfer/sec: 26.39MB // 每秒总共传送数据量
wrk -c100 -t4 -d100s -stest.lua --latency http://localhost:9981/api/test