并发用户数与tps关系(转)

2019-07-26  文晶 

1、并发用户数:显示系统中操作业务的用户,在性能测试工具中叫做虚拟用户数,并发用户数义定会对服务器产生压力,有区别于在线用户数(挂在系统上,对服务器不产生压力)

2、TPS:每秒事务数,是衡量系统性能的一个非常重要指标。

3、Vu 与Tps换算

Tps是每秒事务数,主要靠虚拟用户做出来的,假如一个用户在1秒内完成1笔事务,那么TPS就是1;如果某笔业务响应时间是1ms,那么1个用户在1S内渴望成1000笔事务,则TPS就是1000;如果某笔事务响应时间1s,那么1个用户在1秒内只完成1笔事务,若想要达到1000的TPS,则至少需要1000个用户,因此可以说1个用户可以产生1000TPS,1000个用户也可以产生1000TPS,主要是看系统响应时间快慢。

4、如何获取Vu和Tps


  • 并发用户数(Vu)获取

新系统:没有历史数据作参考,只能通过业务部门进行评估。

旧系统:对于已经上线的系统,可以选取高峰时刻,在一定时间内使用系统的人数,这些人数认为属于在线用户数,并发用户数取10%就可以了,例如在半个小时内,使用系统的用户数为10000,那么取10%作为并发用户数基本就够了。

  • TPS获取

新系统:没有历史数据作参考,只能通过业务部门进行评估。

旧系统:对于已经上线的系统,可以选取高峰时刻,在5分钟或10分钟内,获取系统每笔交易的业务量和总业务量,按照单位时间内完成的笔数计算出TPS,即业务笔数/单位时间(5*60或10*60)

5.  如何评价系统的性能

   针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交 易在多长时间内完成系统响应时间,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到脚本中,并发用户数基本可以增加一倍,因此用并发用户 数来衡量系统的性能没太大的意义。

  • 系统响应时间:

系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径就是系统响应时间,关键路径是由CPU运算、IO、外部系统响应等组成。

响应时间= 网络传输时间 + 应用服务器处理时间 + 数据库服务器处理时间

6.  相关案例

通过大量性能测试我们发现不需要用上万的用户并发去进行测试,只要系统处理业务时间足够快,几百个用户甚至几十个用户就可以达到目的。另外咨询很多专家做过的性能测试项目,基本都没有超过5000用户并发。

因此对于大型系统、业务量非常高、硬件配置足够多的情况下,5000用户并发就足够了;对于中小型系统,1000用户并发就足够了。

7.  性能测试策略

做性能测试需要一套标准化流程及测试策略,并发用户数只是指标考虑的一个,在做负载测试的时候,一般都是按照梯度施压的方式去加用户数,而不是在没 有预估的情况下,一次加几万个用户,,交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内,这样做没有多大的意义,这就好比“有多少钱可以干多少事”一样,需要选择相关的策略。

8.  总结

  • 系统的性能由TPS决定,跟并发用户数没有多大关系。在同样的TPS下,可以由不同的用户数去压(通过加思考时间设置)。
  • 系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。
  • 建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。
  • 一般情况下,大型系统(业务量大、机器多)做压力测试,5000个用户并发就够了,中小型系统做压力测试,1000个用户并发就足够了。


1135°/11345 人阅读/1 条评论 发表评论

阳光  2019-12-24

看一上文,有感。作一些补充以享读者: 1、有区别于在线用户数(挂在系统上,对服务器不产生压力)-----在线用户对服务端可能产生压力也可能不产生压力,取决在线用户的行为。 2、系统的性能由TPS决定,跟并发用户数没有多大关系---系统的性能由TPS决定,而并发用户数会影响TPS的值。 3、建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。-----思考时间尽量以真实用户点击的行为时间间隔去设置,这样测得的数据才能更真实的反应现网场景 4、大型系统(业务量大、机器多)做压力测试,并发用户数取决于该系统面象的目标人群进行评估以及人们对目标系统承担的期望。


登录 后发表评论