设为首页 收藏本站
查看: 989|回复: 0

[经验分享] 性能测试工具 wrk 安装与使用

[复制链接]

尚未签到

发表于 2017-2-24 06:50:07 | 显示全部楼层 |阅读模式
介绍
  今天给大家介绍一款开源的性能测试工具 wrk,简单易用,没有Load Runner那么复杂,他和 apache benchmark(ab)同属于性能测试工具,但是比 ab 功能更加强大,并且可以支持lua脚本来创建复杂的测试场景。
  wrk 的一个很好的特性就是能用很少的线程压出很大的并发量, 原因是它使用了一些操作系统特定的高性能 I/O 机制, 比如 select, epoll, kqueue 等。 其实它是复用了 redis 的 ae 异步事件驱动框架. 确切的说 ae 事件驱动框架并不是 redis 发明的, 它来至于 Tcl的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用而更多的被大家所熟知.
  wrk GitHub 源码:https://github.com/wg/wrk

安装
  wrk只能运行于 Unix 类的系统上,也只能在这些系统上便宜,所以我们需要一个Linux或者macOs。
  不得不说,使用了 Win10之后方便很多。
  必备条件:


  • Win10 RS及以上版本
  • 启用Ubuntu子系统
  1、Win10 系统通过bash命令,切换到Ubuntu子系统。
  
然后需要安装一下编译工具,通过运行下面命令来安装工具:
  

# 安装 make 工具  
sudo apt-get install make
  

  
# 安装 gcc编译环境
  
sudo apt-get install build-essential
  

  

  安装 gcc 编译环境的时候最好挂一下VPN,速度会快些。
  
DSC0000.png
  2、安装完成之后使用 git 下载 wrk 的源码到本地:
  

https://github.com/wg/wrk.git  

  3、切换到git的wrk目录,然后使用make命令:
  

cd /mnt/盘符/wrk目录  

  
make
  

  

DSC0001.png

  编译完成之后,目录下面会多一个 wrk 的文件。
DSC0002.png


测试
  使用以下命令来测试一下:
  

./wrk -c 1 -t 1 -d 1 http://www.baidu.com  

DSC0003.png

  简单说一下wrk里面各个参数什么意思?


  • -t 需要模拟的线程数
  • -c 需要模拟的连接数
  • --timeout 超时的时间
  • -d 测试的持续时间
  结果:


  • Latency:响应时间
  •   Req/Sec:每个线程每秒钟的完成的请求数

  • Avg:平均
  • Max:最大
  • Stdev:标准差
  •   +/- Stdev: 正负一个标准差占比

  标准差如果太大说明样本本身离散程度比较高. 有可能系统性能波动很大.


  如果想看响应时间的分布情况可以加上--latency参数
  
DSC0004.png

  我们的模拟测试的时候需要注意,一般线程数不宜过多,核数的2到4倍足够了。 多了反而因为线程切换过多造成效率降低, 因为 wrk 不是使用每个连接一个线程的模型, 而是通过异步网络 I/O 提升并发量。 所以网络通信不会阻塞线程执行,这也是 wrk 可以用很少的线程模拟大量网路连接的原因。
  在 wrk 的测试结果中,有一项为Requests/sec,我们一般称之为QPS(每秒请求数),这是一项压力测试的性能指标,通过这个参数我们可以看出应用程序的吞吐量。

总结
  关于 wrk 已经介绍完毕了,之所以写这篇文章的目的是为了接下来对 ASP.NET Core做一个性能对比测试(Java,NodeJS,Python等)时需要用到该工具,敬请大家期待。

  本文地址:http://www.cnblogs.com/savorboard/p/wrk.html
  
作者博客:Savorboard
  
欢迎转载,请在明显位置给出出处及链接
  



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346306-1-1.html 上篇帖子: 薛定谔的猫 下篇帖子: Webpack 入门指南
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表