zoukankan      html  css  js  c++  java
  • 浅谈性能测试理论,或客户理解存在的误区

    转载  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足够高,处理业务的时间足够短,

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

  • 相关阅读:
    Caused by: Unable to load bean: type:com.opensymphony.xwork2.ObjectFactory class:org.apache.struts2.
    走到头儿的外企之路——北漂18年(45)
    [ERROR] XML Parser Error on line 11: 注释中不允许出现字符串 "--"
    Unknown lifecycle phase "mybatis-generator-generate"
    org.eclipse.wst.xsl.jaxp.debug.invoker.TransformationException
    windows expect-5.21r1b1-setup.exe 下载链接
    linux下C语言实现静态IP地址,网关的设置
    OpenSSL “心脏滴血”漏洞
    linux 让root用户可以telnet
    perl 创建文本框
  • 原文地址:https://www.cnblogs.com/zhenyu1/p/13562530.html
Copyright © 2011-2022 走看看