性能测试和并发压力的关系

发布于: 2020 年 07 月 21 日

在谈起并发这个概念之前,我们先来说说压力,对系统而言,性能问题归根到底,都会体现为实实在在的压力。因此,我们一般说的“你这个系统的性能最高能到多少?”,其内在含义指的就是“系统所能承受的最大压力是多少”。

系统的压力是什么呢?压力是对被测系统而言的,只要系统在处理事务,就有压力,这种压力不仅仅体现在网络上(数据的吞吐),还体现在服务器上(如CPU、内存等),因此,我们不要混淆了吞吐量与压力的关系,应该这么说,在一些web系统上,吞吐量可以在一定程度上反映系统承受的数据压力。

另外,我们需要清楚,压力不等于性能,压力只是检验性能的一种手段,对一个性能良好的系统,在一定的压力下,应该可以保持正常运转,如果超过负荷,则应该分流或化解压力,这也是我们需要检验的。

性能测试中怎么设置并发数,怎么合理选择并发数?

并发用户:指的是现实系统中同时操作业务的用户,在性能测试工具中一般称为虚拟用户(Virutal User)。并发用户跟注册用户、在线用户有很大差别,并发用户一定会对服务器产生压力,在线用户数只是 ”挂” 在系统上对服务器不产生压力,注册用户一般指的是数据库中存在的用户。

TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个重要指标,事务靠虚拟用户产生,假如1个虚拟用户在1秒内完成1笔事务,那么TPS就是1,要想达到1000TPS至少需要1000个用户;如果某笔业务响应时间是1毫秒,那么1个用户在1秒内能完成1000笔事务,TPS就是1000。因此1个用户可以产生1000TPS,1000个用户也可以产生1000TPS,主要看响应时间的快慢。

对于并发用户数的选择,可以选取线上系统在高峰时刻一定周期内使用系统的人数,这些人数可以认为是在线用户数,并发用户数取其10%就可以了。例如在1小时内使用系统的用户数为10000,那么取10%作为并发用户数基本就够了。

对于TPS的评估,可以通过线上系统在高峰时刻10分钟内完成的业务量在单位时间的处理笔数计算出TPS ,即业务笔数 /单位时间(10*60 )。

对于新上线系统因没有历史数据可供参考,故只能通过业务发展趋势来预判各项指标。

性能测试需要一套标准化流程及测试策略,在进行压测时一般会按照梯度施压的方式增加用户数,以此观察系统在不同压力下的各种反应,如果在没有充分评估的前提下一次加压大量用户会导致系统失败率高响应时间长,最终得到的测试结果没有太大意义。

一般情况下,大型系统(业务量大、机器多)做性能测试 5000 个并发用户就够了,中小型系统做性能测试 1000 个并发用户就足够了。

用户头像

王锟

关注

还未添加个人签名 2018.09.26 加入

还未添加个人简介

评论

发布
暂无评论
性能测试和并发压力的关系