wrk
是一款针对 Http
协议的基准测试工具,它能够在多核 CPU
的条件下,使用系统自带的高性能I/O 机制,通过多线程和事件模式,对目标网址产生大量的请求,已到达测试网址性能的目的。
安装
git clone https://github.com/wg/wrk
make
cp wrk /usr/local/bin/
使用
$ wrk --help
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)
-c, --connections: total number of HTTP connections to keep open with
each thread handling N = connections/threads
-d, --duration: duration of the test, e.g. 2s, 2m, 2h
-t, --threads: total number of threads to use
-s, --script: LuaJIT script, see SCRIPTING
-H, --header: HTTP header to add to request, e.g. "User-Agent: wrk"
--latency: print detailed latency statistics
--timeout: record a timeout if a response is not received within
this amount of time.
demo
$ wrk -t12 -c40 -d30s http://baidu.com
Running 30s test @ http://baidu.com
12 threads and 40 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 33.41ms 1.75ms 38.48ms 72.73%
Req/Sec 65.24 25.72 110.00 79.66%
385 requests in 30.08s, 145.13KB read
Socket errors: connect 0, read 9962, write 0, timeout 0
Requests/sec: 12.80
Transfer/sec: 4.82KB