前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能测试实战30讲」之问题问答整理三

性能测试实战30讲」之问题问答整理三

作者头像
高楼Zee
发布2019-12-30 14:45:04
1.1K0
发布2019-12-30 14:45:04
举报
文章被收录于专栏:7DGroup7DGroup

03丨性能综述:怎么理解TPS、QPS、RT、吞吐量这些性能指标?

你能思考一下,为什么 258 响应时间不合理吗?像“业务模型用 28 原则”这些看似常识性的知识点,错在哪里呢?


老师好,有个问题麻烦问下jmeter压测constant throughput timer中设置的qps ,实际中的threads是怎么分配的?对于number of threads(users)和ramp-up period设置压上去的throughput和前面提到的qps这个不同点,麻烦解释下,辛苦多谢啦


作者回复: 这里我把constant throughput timer设置为all threads来说。 1. 如果constant throughput timer里设置了10 samplers per min,即是不管你有多少threads,都是只发10个samplers per min出去。 如果你设置了1个thread,那就是6秒发一个。 如果你设置了2个threads,那就是一次发2个,12秒发一次。 如果你设置了20个threads,那就是一开始就会发20个出去,然后再等2分钟之后再发后面20个。 number of threads(users)和ramp-up period不管如何设置,都会受前面设置的constant throughput timer控制。即是按分钟来计算sampler,要是发多了,后面停的时间就长。

  1. 第一个问题: 这个命题的争论有个bug,问题在于「快、好」的定义上。做为不同业务下的性能水平,快的定义是不一样的,比如在数据处理业务中,常分OLAP(联机分析处理)、OLTP(联机事务处理),比如一个简单的 OLTP 查询有大厂是要求微妙级别的,OLAP 统计报表类的业务查询几分钟也是可以接受啊。
  2. 第二个问题: 在一个具体的业务场景中,性能场景中的业务模型和二八原则并没有什么关系,即使从宏观上来说有关系,也是很牵强的,至少至今为止,还没看到任何有数据和数学公式的支撑证明。

作者回复: 深得真传。哈哈。

  1. 第一个问题: 不合理之处在于没有结合实际场景去规定它的响应时间。响应时间是否合理是要进行对比的,例如现在的大数据技术测试,在不同的条件配置下处理TB级的数据,响应时间半天、一天都可以说是合理的响应时间。因为影响响应时间的因素有很多(存储方式,调度方式,参数调优等),单独拿“258”说明是没有意义的。
  2. 第二个问题: 常识的适用情况在于通用,但实际场景中经常会有各种“意外”。以12306购票系统为例,以前春运抢票时经常会有朋友、家人吐槽12306好卡、好慢,我估计之前就是业务模型用了28原则,虽然已经进行过了压力测试、疲劳测试,但还是抵挡不住全国人民着急回家的心情,拼命的发送请求......所以实际情况要实际考虑,以通用估意外肯定会才很多坑,只有不断地优化,更新才能一步步满足用户地需要。(PS:现在12306系统已经好很多了)

作者回复: 理解的非常正确。

如果这时响应时间是 100ms,那显然并发线程数是 500TPS/(1000ms/100ms)=50(并发线程)。这没看明白是什么意思

作者回复: 对一个线程来说,如果响应时间是100ms,那这个线程在一秒内不就是:1000ms/100ms = 10tps了吗? 如果要达到500TPS,那需要多少线程呢?就是500TPS/10TPS=50线程。

第一个问题,世界上没有一个放之四海而皆准的原则理论,拿来就用必出问题,唯有知其然,知其所依然,才能正确使用。感谢老师给我们上了生动的一课,在学习中始终保持一份好奇心,多思考,多问几个问题,才能学以致用。

第二个问题,二八定律是19世纪末20世纪初意大利经济学家帕累托发现的。帕累托从大量具体的事实中发现:社会上20%的人占有80%的社会财富,即:财富在人口中的分配是不平衡的。现在这个定律被广泛用在很多领域,比较有名如时间管理认为,20%的时间完成80%的工作。其实我个人认为,就时间管理而言,这个二八定律也是不合适的,是学渣们自我偷懒的借口。所以很喜欢老师说的,不要满口理论、定律等花架子,应该按照业务,按照样本数据分析结果,从实际出发,这样才能实事求是,做出符合实际的业务预估。 这堂课还需好好消化,也建议老师结合自己的实践,提出你自己的模型,让我们学习参考借鉴!

作者回复: 理解的非常正确。希望后续的篇幅能让你满意。我也尽我所能。


老师,我有些点不太确定: 1.在线用户数是通过监控得出的数据吗? 2.并发度是主要业务才会大些,其他业务的并发度在1%~5%? 3.TPS是有上面两个业务指标计算得出来的? 4.响应时间是通过生产数据得出的,算是已知条件? 5.并发线程是由TPS *响应时间得出的,是需要计算的?

作者回复: 1. 通过监控可以得出。 2. 在我的经验中,其实主要业务才有1%~5%。 345. TPS、RT和压力机的并发线程数。都是不用计算的,是直接通过测试执行得出的。在文中所说的只是说明他们之间的关系而已。

响应时间的258原则和业务模型的28原则,我在网上也看到过。听了老师的讲解,我觉得这样的原则其实是有年代或者一定的背景限制的,正如那个响应时间的258,说的是那个年代的音乐缓冲服务, 特定的年代,特定的系统,虽然经典,但很局限,它不能代表所有的系统,更何况随着科技发展和人们对时间和速度的要求,这样的原则显然不太符合。真正需要了解某个系统响应时间的需求,还真是靠同行业系统的参照或者对样本群体的统计分析更靠谱!

作者回复: 能有赞同感很欣慰。

并发线程数是500TPS/(1000ms/100ms)=50(并发线程)。这里的1000ms怎么来的?不懂这个计算方式

作者回复: TPS中的S就是1秒,1秒是1000毫秒。1000ms就是这样来的。。

258原则应该是指,用户打开页面到看到页面数据的时间,性能测试的场景有很多种,不一定适用所有

作者回复: 现在应该算是完全不适用了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 7DGroup 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档