转【性能测试】:给各位普及下并发数的概念

一、

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

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

比如领导说我们系统有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 @ 2019-04-18 10:11  fy-  阅读(4662)  评论(0编辑  收藏  举报