WRK 编译安装
没有找到 yum 源, 这里记录 wrk 的安装过程
安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 1. 切换到待安装的目录 cd /usr/local/src # 2. 免提示(-y), 安装 git yum install git -y # 3. 下载 wrk 源码 git clone https://github.com/wg/wrk.git # 4. 进入安装文件夹 cd wrk # 5. 下载 gcc 编译器, 并编译 yum -y install gcc make # 6. 创建软连接, 方便全局调用 ln -s /usr/local/src/wrk/wrk /usr/local/bin |
使用
- 基础使用
使用 12 个线程, 保持 400 HTTP 连接持续运行三十秒.
wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
结果类似如下:
1 2 3 4 5 6 7 8 9 |
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 |
- 参数说明
短参数 | 长参数 | 描述 |
---|---|---|
-c | --connections | 保持开启的总连接数, 每个线程均摊服务 |
-d | --duration | 持续时间, 比如: 2s, 2m, 2h |
-t | --threads | 被使用的总线程数 |
-s | --script | LuaJIT script, see SCRIPTING |
-H | --header | HTTP 请求头, 比如: "User-Agent: wrk" |
--latency | 打印详细的延迟统计信息 | |
--timeout | 记录超时的响应报文 |
- 建议
- 运行 wrk 的设备需要有足够的空闲端口, 被关闭的套接字需要迅速的被回收利用.
- 仅更改 HTTP 请求方法, 路径, 添加 header 或 body 并不影响性能.
- 请求操作, 尤其是新建立的请求, 使用 response() 必然能减少负载量.
鸣谢 WRK.