wrk - HTTP 性能测试工具

wrk 是一个 http 的性能基准测试工具。使用简单的多核机器,多线程并且利用 Linux系统的 io 模型( epoll ,kqueue)来产生大量并发。并且 http 请求的创建可以使用 LuaJIT 脚本。

安装

Mac

1
brew install wrk

Linux

1
2
3
4
5
6
git clone https://github.com/wg/wrk
cd wrk
make

# 可执行文件放进你的环境变量路径中,方便命令行执行
cp wrk /usr/local/bin/

使用

基本用法

1
wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html

使用12个线程创建400个连接,持续30秒

测试结果:

1
2
3
4
5
6
7
8
Running 30s test @ http://127.0.0.1:8080/index.html
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 635.91us 0.89ms 12.92ms 93.69%
Req/Sec 56.20k 8.07k 62.00k 86.54%
22464657 requests in 30.00s, 17.76GB read
Requests/sec: 748868.53
Transfer/sec: 606.33MB
1
2
3
4
5
6
7
每个线程数据状态
平均响应时间 635.91ms 偏差0.89(越小越稳定) 最大12.92ms
每秒请求 56.20k 个 偏差 8.07k 最大 62.00k

总共在 30.00s 内发生了 22464657 个请求,读取了 17.76GB 数据
每秒请求数为 748868.53
每秒数据传输量 606.33MB

命令行参数

1
2
3
4
5
6
7
8
-c, --connections  连接数,每个线程连接数是:connections/threads
-d, --duration 测试持续时间
-t, --threads 使用的线程数量
-s, --script 使用的 lua 脚本
-H, --header 请求头信息
--latency 打印详细响应数据
--timeout 未响应的超时时间
-v, --version 打印版本号

参考

0%