平衡状态下,并发数=RPS(或 TPS)*平均响应时间,这公式怎么理解?jmeter 测最大并发数的正确方法?

我在测最大并发数时,看到很多大佬提到这个公式:平衡状态下,并发数=RPS(或 TPS)*平均响应时间,这怎么理解?jmeter 测最大并发用户数的正确方法是什么?我用 jmeter 测压测时发现,tps 总是稳定在一个区间的,但是响应时间会根据设置的线程数而变化,那得出来的并发数也是变化的,这个并发数有可取的价值吗?如果没有,那为什么这么多公司都要求测最大并发数?

回答·5
最热
最新
  • 近日,Hitest 在其技术博客上发表了一篇题为《并发用户数与 TPS 之间的关系》的文章,文章对 TPS 和并发用户数做了详细的解释,并针对性能测试中系统性能的衡量维度和测试策略给出了自己的建议。Hitest 是阿里巴巴技术质量部提供的一款 Web&移动应用安全测试 SaaS 化服务平台,旨在帮助开发者简单快捷地进行安全测试。 在文中,作者首先对并发用户数和 TPS 做了解释: 并发用户数:是指现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User)。并发用户数和注册用户数、在线用户数的概念不同,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。 TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个非常重要的指标。 作者认为现在很多从业人员在做性能测试时,都错误的认为系统能支撑的并发用户数越多,系统的性能就越好。要理解这个问题,首先需要了解 TPS 和并发用户数之间的关系: TPS 就是每秒事务数,但是事务是基于虚拟用户数的,假如 1 个虚拟用户在 1 秒内完成 1 笔事务,那么 TPS 明显就是 1;如果某笔业务响应时间是 1ms,那么 1 个用户在 1 秒内能完成 1000 笔事务,TPS 就是 1000 了;如果某笔业务响应时间是 1s,那么 1 个用户在 1 秒内只能完成 1 笔事务,要想达到 1000TPS,至少需要 1000 个用户;因此可以说 1 个用户可以产生 1000TPS,1000 个用户也可以产生 1000TPS,无非是看响应时间快慢。 也就是说,在评定服务器的性能时,应该结合 TPS 和并发用户数,以 TPS 为主,并发用户数为辅来衡量系统的性能。如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到脚本中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。 作者最后做了综述,他认为在性能测试时并不需要用上万的用户并发去进行测试,如果只需要保证系统处理业务时间足够快,几百个用户甚至几十个用户就可以达到目的。据他了解,很多专家做过的性能测试项目基本都没有超过 5000 用户并发。因此对于大型系统、业务量非常高、硬件配置足够多的情况下,5000 用户并发就足够了;
  • 这么说哈 这个并发数是有公式的哈,具体公司并发数是多少要看公司运营,统计一下网页的在线人数确定或者安装产品的要求确定
  • tps 的高低还有稳定与否的意义是什么呢?  能看出来什么呢?  望大佬回答 在下一直不理解
  • 关于并发数: 性能测试需要得到,tps 出现拐点时的并发数,这个是最优并发数!最大并发数,这个没有,如果并发太多出现异常,那就是 bug!最优并发数,只要数值不太低,基本都不是问题!这个值是和响应时间挂钩的,比如秒杀活动,超过了最优并发就会增加响应时间!压力测试和极限测试使用的并发数,都是以最优并发数为基础进行计算的!
  • 首先,公式没问题。tps 代表了系统的最大处理能力,线程数量代表了发送请求的数量。 举个例子,现在一个理发店有三个理发师 剪个头发 要一小时。那么这个理发店 tps 就是 3 笔/小时。 现在来了 3 个客人 {等于 jmeter 3 并非}他们都可以马上去理发 ,那么 这 3 客人他们都平均响应时间是 1 小时。 现在来了 6 客人 其中 3 个客人马上去剪发,剩下 3 客人要等 1 小时。那么这 6 个客人平均响应时间 要 1.5 小时。 具体到你的场景 ,系统处理能力就这点 ,来的请求多了 就有请求要等待。这样响应时间当然要提高了