压测工具wrk使用
linux环境
找一个目录
git clone https://github.com/wg/wrk.git
拉下代码后
make
等待一段时间....
wrk
参数说明一下
Options:
-c, --connections <N> 跟服务器建立并保持的TCP连接数量
-d, --duration <T> 压测时间
-t, --threads <N> 使用多少个线程进行压测
-s, --script <S> 指定Lua脚本路径
-H, --header <H> 为每一个HTTP请求添加HTTP头
--latency 在压测结束后,打印延迟统计信息
--timeout <T> 超时时间
-v, --version 打印正在使用的wrk的详细版本信放到全局
cp wrk /usr/bin
wrk -t8 -c400 -d30s http://127.0.0.1:8080
复杂测试 post
编写post.lua脚本
wrk.method = "POST"
wrk.body = '{"mobile": "13501603210","timestamp": "1627957620793","sign": "VrCtw7ctOY79XxxRkLCsYl6JNPrh/Iwm9="}'
wrk.headers["Content-Type"] = "application/json"执行压测
wrk -t100 -c1000 -d1s --script=post.lua http://192.168.1.17:8888/alipayhome/api/whitelist
结果
Running 30s test @ http://www.bing.com (压测时间30s)
8 threads and 200 connections (共8个测试线程,200个连接)
Thread Stats Avg Stdev Max +/- Stdev
(平均值) (标准差)(最大值)(正负一个标准差所占比例)
Latency 46.67ms 215.38ms 1.67s 95.59%
(延迟)
Req/Sec 7.91k 1.15k 10.26k 70.77%
(处理中的请求数)
Latency Distribution (延迟分布)
50% 2.93ms
75% 3.78ms
90% 4.73ms
99% 1.35s (99分位的延迟:%99的请求在1.35s以内)
1790465 requests in 30.01s, 684.08MB read (30.01秒内共处理完成了1790465个请求,读取了684.08MB数据)
Requests/sec: 59658.29 (平均每秒处理完成59658.29个请求)
Transfer/sec: 22.79MB (平均每秒读取数据22.79MB)程序员,产品 9.1 PHP Go 前端 JwCode 渐悟分享