2019.03.19重新修改(之前的使用安装方式有误!)

Stress安装指南

github地址:https://github.com/buaazp/stress

使用环境:macOS 或者 Linux (Windows用户请安装虚拟机或者Linux服务,如git工具)

编译环境:需要安装GO环境(go环境安装)

操作流程:

1. 确保安装了go服务且在Unix or unx内核系统下操作

2. 执行指令

go get github.com/buaazp/stress

注意:执行可能会报错,如

看下意思就知道,是perks这个代码库拉取失败,你可以直接手动在/Users/jzc/go/src/github.com/bmizerany/路径(具体路径看你自己的电脑)下使用    git clone https://github.com/bmizerany/perks, 或者再次执行指令尝试

3. 下载完代码库后我们会在我们的 GOPATH 路径下的src中,新增了文件,然后我们执行

go install github.com/buaazp/stress

完成后进行stress项目路径,如我的是

4. 执行

sh release.sh

截图:

5. 这里一共下载了四个包,其中:

linux:即Linux所使用的包

darwin:macOS所使用的包

386:32位

amd64:64位

大家选择自己需要的包解压即可,执行

//我这里使用的是macOS系统
tar zxvf stress-darwin-386.tar.gz

6. 执行 ls -l 指令查看下文件

执行

./stress -h

出现下图说明安装成功

Stress使用指南

安装完成后,自然是使用它来进行压测了

stress提供了两种方式,简单的说,一种就是固定速率,持续一定时间,另一种是固定的请求数,以多线程形式持续发送(时间不固定)

固定速率形式:

./stress attack -header="host:www.baidu.com" -targets=file/test.txt -rate=10 -duration=60s

多线程形式:

./stress attack -header="host:www.baidu.com" -targets=file/test.txt -c=10 -n=100

上面的rate(每秒请求数)就可以近似看为QPS,上面的例子一共发了600个请求

其中,targets是我们要请求的地址,支持GET和POST请求

你可以创建一个文件,写入   GET https://www.baidu.com

更多使用方式请参考:stress使用

执行效果:

关于报告

stress的请求报告默认写入result.json,需要修改名称可以在请求时添加参数

./stress attack -header="host:www.baidu.com" -targets=file/test.txt -rate=10 -duration=10s -output=1.txt

已经生成的报告可以通过指令来修改格式,支持text,json,plot三种

./stress report -input=result.json -output=test.txt -reporter=text

最后

请谨慎设置请求数值。。。

请求QPS上限理论上来说取决于机器性能和操作系统文件打开数上限(文件描述符数量)

(我在我的处理器2.3 GHz Intel Core i5,内存16 GB 2133 MHz LPDDR3下,500QPS轻松无压力)

-----------------------------------------------------下面是未修改原文----------------------------------------------------------

对于大型项目来说,高并发高流量的场景是必然的,这种时候压力测试就非常必要,而现在的压测工具良莠不齐,而且好多的是付费的,效果也不怎么好。

这次我主要是在一个定时红包雨的活动中(该活动的接口放在一个流量比较大的模块内),由于用户的请求都是在几秒内同时发出,所以一旦用户基数过大就可能对集群的承载造成威胁,万一把集群搞挂了那我可能就要收拾行李滚蛋了。。所以为了自己安全,做个压测是必要的。

这里我使用的是gitlab上的开源工具stress,发送的是http请求,这次我使用的是POST方式施压,当然还有还有一些其他方式,具体参照https://github.com/buaazp/stress/tree/master/doc文档说明

该工具使用比较简单,选两台服务器一台作为施压,另一台被施压,然后在施压的过程中看下服务器的状态,以及nmq消息队列中的处理速度。

这边我们在gitlab上下载好工具,上传到服务器然后解压,然后运行release.sh脚本就行了,这里可能会报一些错误,应该是脚本有些命令识别不了,不过只要把工具包下载下来就没问题。

然后选择自己对应的包解压,我这次使用的是stress-darwin-amd64.tar.gz,解压完没看到新增东西,不过我们输入stress,能看到提示的话说明工具就能使用了

ok,然后写个txt里面加入我们的接口位置就可以开始压测了!

stress attack -targets=test.txt -c=100 -n=10

这里的参数具体看文档,一般自己估摸下自己的场景qps峰值能到多少,这次我估计的是到300.

不过由于用的被施压的服务器配置不行,,差点把它搞崩溃了,处理了二十多分钟才处理完所有请求

不过这个工具后面应该还可以完善,等自己实力更高一些再回头来钻研下

具体还有些数据大家自己压测的时候也要注意

这次红包雨为了防止请求数太大,采用了现将请求放到nmq中,然后再慢慢处理,其中将结果先直接返回给用户,红包的数据之后慢慢写到db里,而且为了防止用户反复发送请求,使用memorycache缓存用户的红包结果。

百度云stress工具下载,以及我的压测结果报告也在其中,仅供参考

链接:https://pan.baidu.com/s/1nwXtg8p 密码:uue1

关注微信公众号,给你好看

压力测试 - HTTP压测工具stress指南相关推荐

  1. 从零开始自制实现WebServer(十八)---- 对服务器做最后的压力测试 WebBench压测小工具 项目迎来终章

    文章目录 全流程实现博客链接 前引 (十八)---- 对服务器做最后的压力测试 WebBench压测小工具 项目迎来终章 1.正确处理Vmware-Station 处理器设置(初步调试过程) 2.正确 ...

  2. 压测工具stress

    1.下载压测工具stress $ sudo apt-get install stress 参数说明: -? 显示帮助信息 -v 显示版本号 -q 不显示运行信息 -n 显示已完成的指令情况 -t -- ...

  3. linux压测工具stress和stress-ng下载

    1. 下载 2020/5/16实测以下地址能下载 stress: https://fossies.org/linux/privat/stress-1.0.4.tar.gz/ stress-ng htt ...

  4. Linux 压测工具 stress 安装下载使用

    stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这些设备运行的用户. 第一种 下载地址https://fossies.org/linux/privat/st ...

  5. linux压测工具stress安装使用

    下载地址 https://fossies.org/linux/privat/stress-1.0.4.tar.gz/ 或百度网盘 链接:https://pan.baidu.com/s/14Y23d7a ...

  6. Linux压测工具Stress安装与使用

    下载: wget -P /home/ http://people.seas.harvard.edu/~apw/stress/stress-1.0.4.tar.gz 如上面下载方法无效可以用下面方法下载 ...

  7. Http压测工具wrk使用指南【转】

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  8. Http压测工具wrk使用指南

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  9. 【腾讯优测干货分享】从压测工具谈并发、压力、吞吐量

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/580d914e07b7fc1c26a0cf7c 前言 随着部门业务的拓展,我们有 ...

  10. linux tcp压测工具,02.监控和压测工具 - 2.4.压测工具 - 《Linux性能调优指南》 - 书栈网 · BookStack...

    压测工具其它有用工具 在这里,我们会讨论主要的压力测试工具,选择合适的压测工具,才能准确衡量系统性能.好的压测工具有很多,可能的功能如下: 发起压力 监控性能 监控系统使用率 生成报告 基准测试无非就 ...

最新文章

  1. 白话Elasticsearch03- 结构化搜索之基于bool组合多个filter条件来搜索数据
  2. java xml字符串提取元素,如何从Java中将子元素从XML提取到字符串?
  3. [RabbitMQ]创建Java开发环境_消费者_生产者
  4. oracle表空间不足
  5. 炫界 (978) -(建工发现应用克隆漏)_除了DMA,这些漏损点检测与漏损区域识别技术你知道么?...
  6. [原]sencha touch之表单(login demo)
  7. 使用Maven构建Web项目-测试
  8. JAVA-初步认识-第十章-多态-类型判断-instanceof
  9. java如何对单词排序_java - 如何按第二个单词对列表进行排序? [重复] - SO中文参考 - www.soinside.com...
  10. 3.4实训任务 Hadoop环境搭建与安装
  11. 2020计算机组成原理课程设计(桂电)
  12. kindle mysql_MySQL(二) MySQL基本操作
  13. HUAWEI 机试题:VLAN资源池
  14. 外卖行业现状分析_2020年中国外卖行业市场现状和发展趋势分析 外卖下沉趋势明显「组图」...
  15. 橡胶支座抗压弹性模量计算公式_橡胶支座计算
  16. 实现echarts图多个legend图例和自定义legend中字体颜色
  17. JS 无形装逼,最为致命
  18. linux系统怎么制作win10,win10 + linux 制作双系统教程(我本身是win10系统)
  19. 苏嵌嵌入式linux实训 第1天
  20. SAP gui 770 下载

热门文章

  1. SAP系统里批次双计量单位的实现
  2. 2021鹏业安装算量软件常见问题整理(四)
  3. 【服务器数据恢复】服务器Raid5阵列mdisk磁盘离线的数据恢复案例
  4. PCL单选点和框选点
  5. 全国省市json文件,省市区json文件
  6. Python鸡兔同笼
  7. AI人工智能知识图谱Neo4j关联查询人物关系cypher查询
  8. html5css字竖着显示,css如何设置竖排文字?
  9. matlab解三次方程,并且输出图像
  10. vue+jsonp跨域