浅谈性能测试理论,或客户理解存在的误区

转载  https://www.cnblogs.com/fy--/p/10727943.html

一、

 

并发数:是指代同事访问服务器站点的连接数,

 

实际工作中,经常发现很多人对并发数有误解。

 

比如领导说我们系统有10w活跃用户,所以系统必须要支持10w并发;

 

比如压测报告里写某个接口支持100并发,客户就会反问难道系统只支持100用户同时访问?性能是不是太差了!

 

问出上面问题的人,大多数都存在一个理解上的误区,认为性能测试中的并发数=并发用户数,其实事情没有这么简单。

 

二、

 

简单来说,并发数分为两个概念:客户端并发和服务端并发。

 

客户端并发,有10w人同一时间从10w个不同的客户端发送请求;那么是否可以理解为服务端的并发也是10w呢?

 

很明显是不能的,原因如下几点

 

1>客户端(APP或者浏览器)的请求需要处理之后,发送,和客户端设备的性能有直接的关系;

 

2>网络延迟的问题,很明显了,带宽,距离,信号强弱,都是能直接影响传输速度的;

 

3>用户操作习惯的问题,有的同学机智,有的同学手拙,

 

就凭这几点点,10w的用户纵然在同一时间由客户端操作提交了服务请求,到达服务端的并发,很明显也是不足10w的;

 

假设所有请求在100ms内全部到达,并且认为同一毫秒到达服务器的请求属于同一时刻,那么服务端同一时刻处理的并发请求,也就1000个左右。

 

我们平时在做测试的时候,在压测工具上设置100并发,就是的的确确的服务端并发了,这个服务端的100并发实际相当远大于100的客户端并发;

 

有人说,那100000和100,两个数量级上也差别挺大了呀

 

这里就需要考虑到一个问题:服务请求处理速度(TPS)

 

假设服务端支持100个并发连接,且每笔请求处理速度为10ms,

 

那么一秒钟,能处理请求输=并发数*(1秒/请求处理速度)=100*(1/0.01)=10000笔请求

 

理论上处理完10w笔请求的耗时是10秒钟,这就和大家平时参加抢购等活动的感受差不多了

 

三、

 

这也从另一个方面说明了一个问题,并发数是一个重要的指标,但是在性能测试中,不需要过分关注并发数的多少,

 

而更应该关注处理的业务量(即TPS),只要系统的TPS足够高,处理业务的时间足够短,

 

哪怕同一时刻来再多的并发请求(只要不超过软硬件限制),我服务器也能给你安排的明明白白的。

posted @ 2020-08-25 23:04  测试艺术家  阅读(139)  评论(0编辑  收藏  举报