理解什么是真正的并发数

流楚丶格念 流楚丶格念     2023-03-09     463

关键词:

你,真的理解什么是并发数吗?

从事测试行业的兄 dei ,或多或少都知道并发数的概念。在计算机领域里,并发数是指同时访问服务器站点的连接数。

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

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

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

对于这种理解,只能说

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

个人来说一下我对并发数的一些理解。

并发其实有两种:用户端并发和服务端并发。

具体有什么区别呢?给大家举一个例子。

 

一般来说,抢购和秒杀服务是并发数最高的项目类型,比如某网站8点开始抢购某商品,抢购系统部署在北京的某个机房里。所有的用户都是通过浏览器或者APP来进行商品的抢购。在开始抢购之前,已经有10w个用户预约了该商品,所以我们可以预测到,8点的时候会有将近10w人(极端情况下)同时去进行抢购。那么这个时候,意味着10w个客户端同时开始处理用户的抢购操作。

 

客户端(APP或浏览器)往往是需要先进行一些逻辑处理,才会把抢购请求发送到服务端。但是客户端运行设备和环境是不同的。

有人用的是iPhone XS Max;

有人用的是金立双卡双待语音王;

有人用的是最新款的MacBook Pro;

有人用的是小霸王学习机。

 

不同的客户端环境,运行速度是有很大差别的,所以即便有10w人同时在8点开始点击抢购,等待客户端向服务端发起抢购请求时,同一时刻发出的请求已经不足10w了,可能只剩下9w了。

大家都知道不能让自己的孩子输在起跑线上,但是在这个阶段,有一批拥有更好设备的用户请求已经发送出去了,另外一批低端设备用户在起跑线上已经输了。

 

然而残酷的竞争才刚刚开始,客户端把请求发送出去后,需要通过漫长的网络传输到位于北京机房的服务器上。

这个时候更大的差异出现了。参加抢购的用户分布的全国各地,网络制式也各有不同,4G/3G、联通/电信宽带,50M/100M的带宽,比起客户端设备之间几毫秒的差距,不同环境下网络的延迟差距可能有几十毫秒。

 

在黑龙江漠河的小镇上,王富贵正盘着腿坐在炕上,焦急的等待着手机上显示的排队结果;

在祖国最南的西沙群岛,渔民阿祖在自己的渔船上看着手机上页面一直在转圈圈,而此时手机信号只有2格;

同样的,在北京北五环外的回龙观,在不到十平米自如次卧里,小王看到了电脑屏幕上出现了支付成功页面,此时的他满眼都是欣喜,这一刻,他感觉自己是天选之子。

一场抢购盛宴落下帷幕了,在这个过程中有很多细节值得我们思索。在服务端来看,因为客户端设备的差异和网络的延迟,10w个并发请求,并不是同时到达服务端的,而且会在一段时间内陆续到达。假设在100ms内全部到达,并且认为同一毫秒到达服务器的请求属于同一时刻,那么服务端同一时刻处理的并发请求,也就1000个左右。

 

从上面的例子里大家也都看出来了,用户端并发和服务端并发是有着巨大的差异的,用户端并发>服务端并发。具体多少倍的差异无法计算,因为用户端的环境是无法预估的。但是可以肯定的是,这个差距肯定是巨大的。

 

从另外一个角度来看,在上述的例子中,假如网络延迟为0,那么用户端有多少并发同时请求,在服务端同时接受到的几乎就是多少并发。在这种情况下,用户端并发=服务端并发

所以日常在做性能测试过程中,为了降低网络延迟,客户端压力机和项目服务器都在同一个局域网中,一般都在同一个机房,这样网络的延迟是<1ms的。几乎可以认为是没有延迟的,在客户端压测工具上设置了50并发,那么在服务端也是50并发。

如果上面讲的你都可以理解,那么文章开头那两个问题就有答案了。压测时系统支持50并发,是指服务端支持50并发,并不是只支持50个用户同时去访问。而是远远大于50个用户。

这也从另一个方面说明了一个问题,并发数是一个重要的指标,但是在性能测试中,不需要过分关注并发数的多少,而更应该关注处理的业务量(即TPS),只要系统的TPS足够高,处理业务的时间足够短,哪怕同一时刻来再多的并发请求(只要不超过软硬件限制),我服务器也能给你安排的明明白白的。

 

什么是iis连接数?iis连接数指并发连接数,什么意思呢

...会话”可不是我们平时的谈话,但是可以用平时的谈话来理解,两个人在谈话时,你一句,我一句,一问一答,我们把它称为一次对话,或者叫会话。同样,在我们用电脑工作时,打开的一个窗口或一个Web页面,我们也可以把它... 查看详情

并发数并发以及高并发分别是什么意思?

...管资源数、并发会话数、会话量等等。但有很多人不知道什么是并发数、什么是并发以及高并发,今天我们小编就给大家来简单科普一下。并发数是什么意思?【回答】:并发数,计算机网络术语,是指同时... 查看详情

并发数并发以及高并发分别是什么意思?

...管资源数、并发会话数、会话量等等。但有很多人不知道什么是并发数、什么是并发以及高并发,今天我们小编就给大家来简单科普一下。并发数是什么意思?【回答】:并发数,计算机网络术语,是指同时... 查看详情

网站并发数的理解

...在遭遇攻击时,应该不断增加才是。实则这个请求数可以理解为并发数,就引出“网站并发数”的概念。  对于网站服务器而言,网站并发数,可以理解为,在单位时间内,服务器能够同时处 查看详情

线程,进程,并发

一、基本概念理解并发:一个程序同时执行多个独立的任务,并发的主要目的是提高性能(同时可以做多个事情)以前的单核CPU,某一时刻只能执行一个任务,有操作系统调度,每秒执行多次所谓的“任务切换”,实现并... 查看详情

并发数qps

...并发用户数过大时,会造成进程(线程)频繁切换,反正真正用于处理请求的时间变少,每秒能 查看详情

什么是真正的apm?

...是APM?APM的目的是什么?要求我们做什么?有不少企业对APM的理解其实是有偏差的,本文将向您阐述一个真正完整的APM概念。APM是ApplicationPerformanceManagment的缩写,字面意思很容易理解,“应用性能管理&rdq 查看详情

高并发学好并发编程,关键是要理解这三个核心问题(代码片段)

...么回事!其实,造成这种现象的本质原因就是没有透彻的理解并发编程的精髓,而学好并发编程的关键是需要弄懂三个核心问题:分工、同步和互斥。分工比较官方的解释为:分工就是将一个比较大的任务,拆分成多个大小合适... 查看详情

性能测试:深入理解线程数,并发量,tps,看这一篇就够了

并发数,线程数,吞吐量,每秒事务数(TPS)都是性能测试领域非常关键的数据和指标。那么他们之间究竟是怎样的一个对应关系和内在联系?测试时,我们经常容易将线程数等同于表述为并发数,这一表述正确吗?本文就将对... 查看详情

浏览器允许的并发请求资源数是什么意思?

这个问题药系统的回答,还需要从前后端两方面思考这个问题实际上涉及非常多的考虑和因此而发生的优化技术:首先,是基于端口数量和线程切换开销的考虑,浏览器不可能无限量的并发请求,因此衍生出来了并发限制和HTTP/1... 查看详情

性能测试三tps和并发数是什么关系?(代码片段)

一、什么是并发或许你在网上会得到"绝对并发"和"相对并发"这两个概念。绝对并发指的是同一时刻的并发数;相对并发指的是一个时间段内发生的事情。但实际上,我们讲并发的时候不需要去区分上面这2个... 查看详情

高并发计算服务器数量

...并发用户数过大时,会造成进程(线程)频繁切换,反正真正用于处理请求的时间变少,每秒能够处理的请求数反而变少,同时用户的请求等待时间也会变大。找到最佳线程数能够让w 查看详情

并发和并行的区别

...在执?,因为切换任务的速度相当快,看上去?起执??已)真正的并?执?多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核?数量,所以,操作系统也会?动把很多任务轮流调度到每个核?上执?。2.并行:指的是任务数?... 查看详情

并发和并行的区别

...在执?,因为切换任务的速度相当快,看上去?起执??已)真正的并?执?多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核?数量,所以,操作系统也会?动把很多任务轮流调度到每个核?上执?。2.并行:指的是任务数?... 查看详情

八jvm视角浅理解并发和锁

  根据《深入理解java虚拟机》这本书总结  提到java的并发和锁,第一反应可能回想到多线程、synchronized关键字等,那么对于jvm虚拟机,这些是如何实现的呢?或者用的什么思想实现的?  一、JAVA内存模型    为什么... 查看详情

性能测试更关注的是tps还是并发数

...时间:一般取平均响应时间(很多人经常会把并发数和TPS理解混淆)理解了上面三个要素的意义之后本回答被提问者采纳 查看详情

用50个并发线程模拟1万在线用户的逻辑

...用100个并发线程去压测,给几分钟的压测压力,让服务端真正能够达到每秒处理了100个并发请求;但是,更应该注意的是,并非必须用100个并发线程去压,你只要压测出最高的tps后,再根据你设定的最大响应时间,这个最大并发... 查看详情

RPC 中的最大并发连接数是多少?

...多个客户端会调用相同的远程函数。在这种情况下会发生什么?我想知道由 查看详情