文章目录
如何使用wrk做性能测试
##wrk的下载与安装
- 从 github 上下载 wrk 源码
- 切换到wrk目录
- 使用make命令进行编译
- 编译完成后,我们将wrk这个文件复制到bin目录下
- 用wrk -v查看wrk的版本号来验证wrk是否安装成功
命令如下:
shell
git clone https://github.com/wg/wrk.git wrk
cd wrk
make
cp wrk /usr/local/bin
wrk -v
#mac下快捷安装
brew install wrk
wrk基本使用方法
- 使用5个连接 2 个线程,持续运行 60 秒
lua
wrk -c 5 -t 2 -d 60s --latency --timeout 20s -s /Users/wanjinhong/Desktop/soaringnova/demo/exam.txt https://aihubtest.digitalyili.com/aiSquare/openApi/reasoning-services/rlocrxm/sfzsbtest/idcard
lua脚本:lua脚本
参数解释:
lua
使用方法:wrk <选项> <被测HTTP服务的url>
Options:
-c, --connections <N> 跟服务器建立并保持的TCP连接数量(第一个客户端是0)
-d, --duration <T> 压测时间,比如2s
-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)
- 可以被描述为在60s内,6个客户端独立的分为两个线程访问我们的服务器
- 运行结果如下:
- 运行结果的解释:
lua
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.49s 814.59ms 4.82s 73.13%
Req/Sec 1.22 2.79 10.00 88.14%
- Latency:延迟,这里可以理解为响应时间的平均值、标准差、最大值、正负一个标准差所占比,一般我们来说我们主要关注平均值和最大值. 标准差如果太大说明样本本身离散程度比较高. 有可能系统性能波动很大。
- Req/Sec:每秒请求数的平均值、标准差、最大值、正负一个标准差所占比
lua
Latency Distribution
50% 3.68s
75% 4.04s
90% 4.40s
99% 4.82s
- 延时分布统计:50%的请求在3.68s内完成,75%的请求在4.04s内完成,90%的请求在4.40s内完成,99%的请求在4.82s内完成。
lua
67 requests in 1.00m, 86.22KB read
#60s进行了67次请求,耗费86.22KB流量
lua
Requests/sec: 1.12
#每秒处理请求数,即QPS为1.12
lua
Transfer/sec: 1.44KB
# 平均每秒流量为1.44KB