计算最大线程数
查询功能,需要系统能够在5分钟内能完成5000笔查询业务,同时用户响应时间不超过3s,该用多少线程数施压?
公式:最大线程数=(单次响应时间 * 业务量)/总的业务时间
(3*5000)/5*60=50
相对并发&绝对并发
相对并发:指在一个时间段内发生的事情。
在jmeter的测试计划中添加线程组,设置线程属性,2s之内启动10个线程,其对应的相对并发为5(线程数/启动时间)
绝对并发:指在同一个时刻发生的事情。
jmeter可以使用同步定时器实现绝对并发,也就是同一时刻达到了某一集合点才发出请求
绝对并发的优点:对服务器来说,会产生一种瞬间高并发。
绝对并发的缺点:对服务器来说,平均压力会减低。
根据业务来选择,如果业务场景是瞬间高并发类型的,比如抢购,秒杀等,需要加集合点。或者是多场景测试,你需要确保数据流上下游关系,控流的时候可以考虑。其他场景都不需要加,加了集合点后,就不适用tps来衡量系统性能。
吞吐量
性能测试领域的吞吐量通常会结合上时间维度进行统计。
如果吞吐量的“量”以“事务”为统计单位的话,结合时间维度,就可以换算成TPS
TPS&QPS
TPS 每秒事务数(Transactions per second)具体的事务的定义,都是人为的,可以一个接口、多个接口、一个业务流程等。
如果每秒能够完成N次这3个过程,TPS就是N;如果多个接口定义为一个事务,那么这多个请求完成一次,算做一个TPS.
QPS 每秒查询数(Queries per second)是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数)。
QPS代表的场景不够全面,仅仅适用于只执行单次查询的接口,不建议用QPS来作为系统性能指标。
TPS&QPS的关系
如果是对一个查询接口(单场景)压测,且这个接口内部不会再去请求其他接口,那么tps=qps,否则tps≠qps.
如果是容量场景,假设n个接口都是查询接口,且这个接口内部不会再去请求其他接口,qps=n*tps.
如何评估TPS
根据已有接口评估:
如果是一个老接口--上一次大促峰值的3-5倍为目标TPS
如果是一个新接口--可以参考相同业务场景的其他接口目标制定
根据业务量评估
案例:预期20万注册用户,其中每天客跃用户峰值预计占10%,首页存在游客访问则增加一倍;法跃用户平均每人每天访问接口4次;访问时间段大多数在20:00-21:00
通过二八原则,80%的业务在20%的时间产生
峰值TPS=业务量*80%/业务时段(秒)*20%
200000*10%*2*4*80% /60*60*20%=178
标签:007,接口,查询,并发,TPS,QPS,线程,性能指标
From: https://www.cnblogs.com/huizijiang/p/17223649.html