对于定义而言其实并没有特别准确的说法,下面展示几家的说法。
百度解释:并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量。这些用户的最大特征是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据。
维基百科解释:一个系统的容量也可以被测量的最大并发用户,在这一点系统的性能开始明显下降。
Loaderrunner:(经过调查虚拟用户和并发用户是有区别的)并发用户数是指现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User)。并发用户数和注册用户数、在线用户数的概念不同,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。
如果说使用的话Loaderrunner就是一个标准了。虽然解释不同。但是思想解释大家都是相同的,重点都在真实对服务器产生压力,但是思考的维度不同时,有的从点击出发有的从时间出发,结果也有不同。
网上基本就是两种计算方法。
1.计算平均的并发用户数: C = nL/T
C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T指考察的时间段长度。(由于一个人一个时间只能触发一个请求,login session时间就等同访问时间)
2.根据2-8法则进行估算高峰期的使用人数(20%的时间发生80%的业务)
并发用户数是一个和业务访问相关的指标,所以并没有通用的计算方法。第一种算法写帖子的人很多,但是明显都是抄的一家的,连举例都是一样的,实在没法认为他是个标准。但是在某些特定的情况下,这个计算也是没有问题的。从时间的角度看压力也是一种方法。这个算法有效的前提就是T的取值是小于访问一个请求的处理时间的。以Loaderrunner为例,我们设置50个虚拟用户就表示有50个并发用户,由于他本身是个压测工具,压测的一个要素就是压测的应用,可能压测不同的URL,结果也不一样。而且压测的重点是看服务器的承载量。当压垮服务器时,只能说这个服务器最多能接受xxx个用户同时访问xxx这个请求。同样看承载量,如果T的时间大于访问的时间话,并发用户数就会被平均。这个数据显示承载量也就不准了。第二个算法就有点强行套2-8法则,暂时看不出科学的解释。
影响并发用户数的条件因素太多了,所以光看他也不能客观的展示什么问题,一般都结合TPS,如果是TPS只要是有请求过来他就会涨,当请求处理不过来的时候他还在涨,但是并发用户数却和请求了的请求相关,对于在等待处理的并不关心。作为监控指标,结合TPS以及并发用户数才能可靠的看出服务器的承载。