接口高并发压测入门实战

栏目: IT技术 · 发布时间: 4年前

内容简介:电商平台的抢购活动,12306春运抢票,微信抢红包等,相信大家一定不会陌生,这些都是高并发的应用场景,那怎样去模拟这些场景来验证我们的系统抗压能力呢?我们最先想到的例如Jmeter,loadrunner等压测工具,一上来先撸几百个线程,然后分析各种结果图,聚合报告,服务器CPU占用率, 内存,IO 等各种指标,其实并发多少个虚拟用户,不同的公司产品有不同的策略,对于产品性能的要求也应该是逐步进阶的,不同的用户量有不同的要求首先: 对于用户量,应该统计几个维度:注册人数,在线人数,并发用户数,针对秒杀活动,一

电商平台的抢购活动,12306春运抢票,微信抢红包等,相信大家一定不会陌生,这些都是高并发的应用场景,那怎样去模拟这些场景来验证我们的系统抗压能力呢?

压测维度及方案

我们最先想到的例如Jmeter,loadrunner等压测工具,一上来先撸几百个线程,然后分析各种结果图,聚合报告,服务器CPU占用率, 内存,IO 等各种指标,其实并发多少个虚拟用户,不同的公司产品有不同的策略,对于产品性能的要求也应该是逐步进阶的,不同的用户量有不同的要求

首先: 对于用户量,应该统计几个维度:注册人数,在线人数,并发用户数,针对秒杀活动,一般情况

更理想的并发的虚拟用户数应该是根据以往的运营数据来推测,假设系统的注册人数为5000人,活动在线人数为1250人,并发数为:1250*0.8=1000

其次:一次http的请求,从客户端发起,可能要经过负载均衡服务,网关,tomcat服务,所以并发瓶颈可能发生在其中任何一个节点,压测策略

  1. 压测空实现的接口(代码中无相关耗时操作和 sql 操作),

  2. 在压测其它接口,对比这两种压测结果,可能会更有利于我们分析是哪个节点对性能影响较大,从而有针对性的优化

  3. 分析压测结果,压测结果一般需要关注几个重要指标:吞吐量,错误率,响应时间(遵循2-5-10原则)

接口高并发压测入门实战

压测流程

基于以上分析,我们具体的压测流程如下:

压测空接口

先压测空接口,jmeter新建线程组,并发用户数设置为1000,循环1次,并增加集合点,添加查看结果树,图形结果,聚合报告, TPS查看

接口高并发压测入门实战

接口高并发压测入门实战

压测结果如下:成功100个,失败900个,接口报错返回500

重新使用110个线程压测,失败10个,接口报错返回500,可推测某个节点可能对线程数量做了限制,分析后,发现网关工程做了信号量限制,最大100,查看网关工程的application.yml文件,修改相关参数配置,例如增大至5000:

接口高并发压测入门实战

再次使用jmeter并发1000个线程,压测结果如下:吞吐量=241.1/sec ,平均响应时间<5s,错误率=0.00%,基本符合压测要求

压测业务接口

对相关业务接口,使用jmeter单次并发1000个线程,发现部分请求会报超时:

jmeter该接口的平均响应时间,为33s,考虑有可能是超过了服务器设置的超时时间,首先查看nginx超时时间,发现超时参数为30s,修改至60 s, 重新并发,问题解决,压测结果如下:

聚合报告:

Linux服务器相关指标:

压测前:

接口高并发压测入门实战

压测期间:

接口高并发压测入门实战

测试结论:吞吐量= 27.6/sec不满足要求,90%用户响应时间=33.356s,响应时间>5s,不符合要求,压测瞬间服务器cpu占用率较高

模拟现实

因为现实情况下,压力是持续一段时间存在的,所以需要对接口进行一段时间的压测,jmeter线程组上需要勾选Scheduler,然后在Scheduler Configuration上设置Duration持续时间:

接口高并发压测入门实战

总结:

接口的压测需要根据产品,项目的要求来制定具体的压测策略,压测结果需要关注吞吐量,响应时间,错误率,资源利用率,但对系统的性能测试不仅仅是单接口的压测,还涉及的负载加压测试,稳定性测试,全链路压测等等,以适应产品的性能要求。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件构架实践

软件构架实践

林·马斯 / 车立红 / 清华大学出版社 / 2012-6 / 49.00元

软件构架实践(第2版),ISBN:9787302080428,作者:(美)林·巴斯(Len Bass),(美)保罗·克莱门茨(Paul Clements),(美)瑞克·凯兹曼(Rick Kazman)著;车立红译;车立红译一起来看看 《软件构架实践》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具