数据API 产品矩阵 案例 关于
掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

HTTP 压力测试工具 wrk

简介


wrk 是一个HTTP压力测试工具,根据官方的介绍,他有2个明显的特点:

  1. 集成了多线程设计与事件通知系统(如 epoll、kqueue)提升并发量
  2. 可以通过编写 Lua 脚本来进行扩展,例如 HTTP请求的生成、响应处理、自定义报告 ……

使用示例


安装


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函数:

  • setup

所有 thread 生成之后,在被被调用前,每个线程执行一次这个函数

  • init

每次请求发送之前调用

  • delay

请求之间的延迟时间

  • request

可以在每次请求之前修改request的属性

  • response

对每次的响应信息进行处理

  • done

所有请求执行完成后调用

性能与架构.jpg

原文来自:性能与架构

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务
HTTP 压力测试工具 wrk
发布:2016-11-18 12:01:00

简介


wrk 是一个HTTP压力测试工具,根据官方的介绍,他有2个明显的特点:

  1. 集成了多线程设计与事件通知系统(如 epoll、kqueue)提升并发量
  2. 可以通过编写 Lua 脚本来进行扩展,例如 HTTP请求的生成、响应处理、自定义报告 ……

使用示例


安装


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函数:

  • setup

所有 thread 生成之后,在被被调用前,每个线程执行一次这个函数

  • init

每次请求发送之前调用

  • delay

请求之间的延迟时间

  • request

可以在每次请求之前修改request的属性

  • response

对每次的响应信息进行处理

  • done

所有请求执行完成后调用

性能与架构.jpg

原文来自:性能与架构

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

选择想要的接口, 看看能免费获取多少次调用 选择(单选)或填写想要的接口
  • 短信API服务
  • 银行卡四元素检测[简]
  • 身份证实名认证
  • 手机状态查询
  • 三网手机实名制认证[简]
  • 身份证OCR识别
  • 证件识别
  • 企业工商信息
短信API服务
  • 短信API服务
  • 银行卡四元素检测[简]
  • 身份证实名认证
  • 手机状态查询
  • 三网手机实名制认证[简]
  • 身份证OCR识别
  • 证件识别
  • 企业工商信息
  • 确定
选择您的身份
请选择寻找接口的目的
预计每月调用量
请选择预计每月调用量
产品研发的阶段
请选择产品研发的阶段
×

前往领取
电话 0512-88869195
×
企业用户认证,
可获得1000次免费调用
注册登录 > 企业账户认证 > 领取接口包
企业用户认证领取接口包 立即领取
× 企业用户认证,
可获得1000次免费调用,立即领取>
数 据 驱 动 未 来
Data Drives The Future