一、Jmeter分布式压测
性能测试是一个开发工程师/架构师必会的技能之一,只有学会性能测试,才能根
据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是Java调优中的重
要的依据
1、什么是性能测试
性能测试就是通过特定的方式对被测试系统按照一定测试策略施加压力,获取该系
统的响应时间,TPS,吞吐量,资源利用率等性能指标,来检测系统上线后能否满
足用户需求的过程。
2、性能测试的重要性
性能测试是检验我们系统性能的重要步骤,只有经过性能测试,得到对应的的测试
包裹,才能根据报告中所呈现的现象(成功率,响应时长,TPS等)来进行分析,找
出系统的瓶颈所在,优化系统的性能
3、性能指标 -QPS和TPS
QPS和TPS都是衡量一个系统性能的重要指标之一。
①、QPS:每秒查询率
一台服务器每秒能够响应的查询次数,是对一个特定的查询,服务器在规定时间内
所处理流量多少的衡量标准。
②、TPS:每秒处理的事务数目
一个事务是指一个客户向服务器发送请求然后服务器做出反应的过程
QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS,
但一次页面请求,可能会产生多次对服务器的请求,服务器对这些请求,就可以计
入QPS之中。QPS的次数大于等于TPS的次数
二 、压测的时机
压测的时机很重要,如果时间选择不对,可能会做无用功,简单总结下5个常见的
压测场景:
1、上线前压测
常规操作是在上线前,对系统进行一个压测,根据预估的流量,对系统配置进行优
化调整,保证运行期间,系统能够正常运行
2、项目上线稳定后,对系统评估
系统上线后,随着用户量不断增加,承受的压力也会越来越大,为了让系统在未来
的时间内稳定运行,需要通过压测对系统进行评估,调整配置或优化接口,来充
分应对不断增长的用户量。
3、项目研发后期,对系统的检验
在项目后期,由于领导或者团队的要求,需要对系统的稳定性做校验,保证系统短
时间内流量陡增时能稳定运行,可以给系统的部署提供参考。
4、线上出现性能问题
有些项目为了抢占市场,节省时间,为了完成基本的功能就上线了,没有做压测,
当用户突然增加出现性能问题后,反过来做压测,这种情况的风险是很大的,不推
荐。
5、合作方要求
有些合作方对性能有明确的要求,并且写进了合同,这种情况下就必须要做压测
了。