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


    一、

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

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

    比如领导说我们系统有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足够高,处理业务的时间足够短,

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

  • 相关阅读:
    通向全栈之路——(4)nginx反向代理配置
    通向全栈之路——(3)node环境搭建
    通向全栈之路——(2)服务器安全设置
    通向全栈之路——(1)服务器新增用户及授权
    window.location.href跳转至空白页
    webpack 1.x 学习总结
    win7下使用apache ab 比较测试node与 tomcat
    Enum,Int,String的互相转换
    读写appSettings配置节方法
    SC命令
  • 原文地址:https://www.cnblogs.com/fy--/p/10727943.html
Copyright © 2020-2023  润新知