容易混淆的“并发”概念

运维 服务器运维
这篇文章摘自kruny的blog,作者的blog地址为:http://www.cnblogs.com/kruny。本文详细的介绍了几个服务器并发知识中比较容易混淆的概念,对服务器并发的初学者能够起到很大的帮助,51CTO.com在此向作者表示感谢。以下是文章原文。

这篇文章摘自kruny的blog,作者的blog地址为:http://www.cnblogs.com/kruny。本文详细的介绍了几个服务器并发知识中比较容易混淆的概念,对服务器并发的初学者能够起到很大的帮助,51CTO.com在此向作者表示感谢。以下是文章原文。

昨天读完了段念写的《软件性能测试过程详解与案例剖析》一书的***章,感觉学到了不少东西,以下将该书中的我认为是精华的一篇复制过来给大家一起看看:

在实际的性能测试中,经常接触到的与并发用户数相关的概念还包括“并发用户数”、“系统用户数”和“同时在线用户数”,下面用一个实际的例子来说明它们之间的差别。

假设有一个OA系统,该系统有2000个使用用户——这就是说,可能使用该OA系统的用户总数是2000名,这个概念就是“系统用户数”,该系统有一个“在线统计”功能(系统用一个全局变量记数所有已登录的用户),从在线统计功能中可以得到,***峰时有500人在线(这个500就是一般所说的“同时在线人数”),那么,系统的并发用户数是多少呢?

根据我们对业务并发用户数的定义,这500就是整个系统使用时***的业务并发用户数。当然,500这个数值只是表明在***峰时刻有500个用户登录了系统,并不表示实际服务器承受的压力。因为服务器承受的压力还与具体的用户访问模式相关。例如,在这500个“同时使用系统”的用户中,考察某一个时间点,在这个时间上,假设其中40%的用户在较有兴致地看系统公告(注意:“看”这个动作是不会对服务端产生任何负担的),20%的用户在填写复杂的表格(对用户填写的表格来说,只有在“提交”的时刻才会向服务端发送请求,填写过程是不对服务端构成压力的),20%部分用户在发呆(也就是什么也没有做),剩下的20%用户在不停地从一个页面跳转到另一个页面——在这种场景下,可以说,只有20%的用户真正对服务器构成了压力。因此,从上面的例子中可以看出,服务器实际承受的压力不只取决于业务并发用户数,还取决于用户的业务场景。

在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务角度关注究竟应该设置多少个并发数比较合理,因此,在后面的讨论中,也是主要针对业务并发用户数进行讨论,而且,为了方便,直接将业务并发用户数称为并发用户数。

(1)  计算平均的并发用户数: C = nL/T     

(2)  并发用户数峰值: C’ ≈ C+3根号C

公式(1)中,C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T指考察的时间段长度。

公式(2)则给出了并发用户数峰值的计算方式中,其中,C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的login session产生符合泊松分布而估算得到的。

实例:

假设有一个OA系统,该系统有3000个用户,平均每天大约有400个用户要访问该系统,对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。

则根据公式(1)和公式(2),可以得到:

       C = 400*4/8 = 200

       C’≈200+3*根号200 = 242

呵呵,请大家不要见笑,虽然上面写的都是很基础的东西,但是对我本人来讲,在还没有看这本书之前,这些概念我是特别模糊的。

责任编辑:桑丘 来源: http://www.cnblogs.com/kruny
相关推荐

2009-02-02 10:00:11

ADO.NETASP.NET

2023-03-08 07:34:23

响应式更新细粒度更新

2011-05-23 13:05:25

重载重写隐藏

2010-08-03 08:52:23

委托接口

2011-05-20 16:33:47

委托接口

2021-11-14 23:06:49

Python代码开发

2022-05-05 10:02:06

Java设计模式开发

2019-12-23 08:48:24

Java技术全局变量

2021-06-07 17:51:29

并发高并发编程

2022-02-15 19:50:18

加载器JAVAJDK

2023-11-13 14:19:57

Golang编程语言

2021-06-16 11:13:49

曙光

2017-05-31 10:56:25

F5跨云之旅混合云

2022-07-29 08:58:44

多线程并发

2023-08-04 17:52:22

2023-07-14 07:23:21

ReactuseEffect

2021-05-07 16:23:54

鸿蒙HarmonyOS应用

2019-05-27 16:10:28

MySQL数据库SQL

2017-03-02 13:05:10

Android代码混淆
点赞
收藏

51CTO技术栈公众号