wrk性能测试工具使用方法

  

今天主要介绍一款高效的性能测试工具wrk.wrk的使用方式和apache bench这些工具也大体相似,通过命令行的方式即可发起。但是wrk比apache bench更起为高效,因为它支持多线程,更容易发挥多核CPU的能力,甚至可以压满CPU.wrk还支持Lua脚本来提供更多的参数定制,参数加密等需求,灵活度更高。


<>强安装

wrk支持大部分UNIX系统,不支持windows系统。安装过程比较简单,从github克隆项目到本地,再在项目路径下使即可,在此就不详述,具体可查看github文档。


<>强基础使用

wrk  -t12  -c400  -d30s  http://127.0.0.1:80/index . html

以上命令行表示对本80年地端口的指数。html文件发起请求,压测时间持续30秒,并发12线程,保持400个HTTP连接请求。

输出结果:

Running  30 s  test  @  http://127.0.0.1:80/index . html   12,才能threads 以及400年,连接   Thread 才能;Stats ,, Avg ,,,,, Stdev ,,,, Max ,, +/安康;方差   ,,,Latency ,,, 90.43小姐,小姐的201.95,,1.99 s ,, 88.34%   ,,,要求/Sec ,,,, 1.79 k ,,,, 1.80 k ,, 21.57 k ,, 89.17%   577891,才能requests  30.09 s,拷贝,188.46 mb 阅读   错误:Socket 才能;connect  0,, read  0,, write  0, timeout  37   3 Non-2xx 才能,或是xx 反应:577891   请求/秒:19202.50   转/秒:,,,,,,6.26 mb

结果展示了本次压测的请求平均延迟延迟,每秒每线程平均请求数请求/秒,合计的每秒请求数请求/秒和每秒吞吐量转移/秒等。这些数据即可反映出压测服务器的大概响应情况,以对服务器性能做初步判断。

贴一下请求的命令参数:

- c,,,连接:,total  number  of  HTTP  connections 用keep  open    ,,,,,,,,,,,,,,,,,,each  thread  handling  N =,连接/线程   - d,,,时间:,,,,duration  of 从而测试,如只2 s, 2米2 h   - t,——线程:,,,,,total  number  of  threads 用使用   - s,——脚本:,,,,,,LuaJIT 脚本,阅读脚本   - h,——头:,,,,,,HTTP  header 用add 用请求,,如只“用户代理:,wrk"   ,,,,延迟:,,,,,print  detailed  latency 统计数据   ,,,,超时:,,,,,record  a  timeout  if  a  response  is  not  received 内   ,,,,,,,,,,,,,,,,,,却;能够amount  of 时间。

关于长连接和短连接:apache bench默认短连接,wrk默认长连接.wrk如需测试短连接,可添加,- h“连接:接近”,来关闭长连接。


<强>文章请求

wrk不仅能发起对得到请求,也能通过Lua脚本发起帖子请求。如编写post.lua脚本:

 wrk.method =,“POST" wrk.headers [“Content-Type"],=,“应用程序/x-www-form-urlencoded" wrk.body =,“youbody& youset" 

在脚本中定义了帖子请求的头部和身体。执行wrk请求时加上- script指定该脚本:

wrk  -t4  -c2000  -d60s  -T5s ——脚本=post.lua ——latency  http://127.0.0.1:80/user/登录

如此,便可轻松实现岗位请求的压测。


<强>后续

wrk作为一种高效的性能测试工具,可以作为一种常用手段对待测url发起请求。本文只是初步介绍了引用Lua脚本执行帖子请求,Lua脚本其实可以实现更为丰富的测试需求,下一次我们再详细看下Lua脚本如何为wrk添翼。


  

wrk性能测试工具使用方法