一.环境搭建
1.git clone https://github.com/wg/wrk.git
2.cd wrk
3.make
4.make 成功以后在目录下有一个 wrk 文件,就是我们压测使用的可执行文件;
5.试试效果
执行 ./wrk -t12 -c100 -d3s http://www.baidu.com
返回压测结果,OK
ps:
1.如果出现报错:fatal error: openssl/ssl.h: No such file or directory
执行,sudo apt-get install libssl-dev 或者 sudo yum install openssl-devel
二.压测准备
1.参数说明
-t 线程数 线程数不宜过多. 核数的2到4倍足够了
-c 连接数
-d 测试的持续时间
–latency 显示响应时间分布
–script = x.lua 读取 x.lua 脚本
ps:
使用lua脚本,一般修改method, header, body不会影响测试端性能,但是操作 request, response 可能会有影响。
2.返回结果参数
Avg 平均响应时间
Stdev 标准偏差
Max 最大值
+/- Stdev 正负标准差占比Req/Sec每个线程每秒钟的完成的请求数
Transfer/sec 每秒钟读取的数据量
Requests/sec QPS
三.压测步骤
1.寻找最大线程数:
a.固定连接数,持续时间,调高线程数;
b.当线程数增加QPS不再明显变化,且平均响应时间变高时,即为最佳线程数;
2.寻找QPS峰值:
a.固定线程数为最大线程数,固定持续时间,调整连接数;
b.当连接数增加QPS不再明显变化,且平均响应时间变高时,即为QPS峰值;