wrk 是一个HTTP压力测试工具,根据官方的介绍,他有2个明显的特点:
wrk 可以工作在 Linux 或 Mac
项目地址:
https://github.com/wg/wrk
下载后进入项目目录,执行:
make
编译完成后,在当前目录中生成一个 wrk 可执行文件
执行测试命令:
./wrk -t12 -c100 -d10s http://www.baidu.com
意思是对 baidu.com 进行测试,启动 12 个线程,100 个并发,持续运行 10 秒。
建议线程数不要过多,可以设置为核数的2到4倍
输出:
Requests/sec 就是最基本的指标:每秒处理的请求数
Thread Stats 是线程执行情况,包括延迟、每秒处理个数,其中的 Avg 和 Max 很好理解,是平均值和最大值,Stdev 是标准差。
标准差 表示样本数据的离散程度。
例如两组数据 {0,5,9,14} 和 {5,6,8,9},平均值都是 7,但第二个具有较小的标准差,说明更加稳定。
所以,如果多次测试结果中的 Stdev 差距较大,说明有可能系统性能波动很大。
+/- Stdev 这个正负标准差的含义不是很理解,请明白的朋友留言指点。
通过脚本,可以方便的进行自定义功能的开发,例如 提交POST数据、所有请求执行完成后自定义统计结果、对多个URL进行复合测试 ……
wrk 项目中的 scripts 目录下有多个脚本示例,例如 post.lua,设置post请求,代码:
-- example HTTP POST script which demonstrates setting the
-- HTTP method, body, and adding a header
wrk.method = "POST"
wrk.body = "foo=bar&baz=quux"
wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"
执行 wrk 命令时使用 -s参数来加载脚本
./wrk -t12 -c100 -d10s --script=post.lua http://www.baidu.com
wrk 提供的几个hook函数:
所有 thread 生成之后,在被被调用前,每个线程执行一次这个函数
每次请求发送之前调用
请求之间的延迟时间
可以在每次请求之前修改request的属性
对每次的响应信息进行处理
所有请求执行完成后调用
原文来自:性能与架构
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
支持全球约2.4万个城市地区天气查询,如:天气实况、逐日天气预报、24小时历史天气等
支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景
涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。
根据给定的手机号、姓名、身份证、人像图片核验是否一致
通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。