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个用户并发就足够了。