博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
性能测试中“并发度”的意义
阅读量:5918 次
发布时间:2019-06-19

本文共 1346 字,大约阅读时间需要 4 分钟。

之前的中曾出现过“并发度”这个概念,这个词不知道是不是我原创,它意在表达“并发”的可能性,是压力的一种度量。一些同学可能还没有理解这个概念的意义,下面我们看看它是怎么来……

  看过之前文章的同学应该知道,我将“并发”这个容易产生误解的词拆分成了“相对并发”和“绝对并发”。为什么这么做呢?那是因为“绝对并发”说的是同一时刻发生的事情,这通常是我们无法观测和衡量的。而“相对并发”说的是一个时间段内发生的事情,这是很容易观测到的。从某种程度上,也可以说“相对并发”是为了弥补我们无法有效评估“绝对并发”的压力而出现的。

  但是有时候,工程师仍然需要回答“系统可以处理多少个并发请求”这类的问题,或者是需要测试一些绝对并发的极限场景。这类问题和测试场景是有意义的,但是在没有“绝对并发”相关数据的情况下,我们如何处理?显然胡乱拍板是不可以的,那么我们只有根据一些可观测的数据进行合理的推测和估算,“并发度”就是这样产生的。

  假设我们已经分析得出,系统的使用压力集中在2个小时内,在这个时间段内共有100个用户访问(活跃用户),且压力是平均分布的(否则就可以说压力集中在更小的时间段内了),平均每个用户使用系统的时间是30分钟(活跃时间),那么我们可以画出下面一张图来表示服务端所承受的压力。

  这是一张从服务端视角来看的交互图。横轴是时间,纵轴是访问用户,每一条横线表示一个用户与系统的交互过程,不同的用户用不同颜色做了标识。在这张图中,什么是并发度呢?我们选取时间轴上的一个点,延纵轴方向做一条平行线,这条线穿过的横线的数量,就是并发度。

  并发度表示,在一个时间点上,可能与服务端进行交互的用户的数量。为什么说是“可能”呢?因为图中的每一条横线代表的是用户与系统的交互过程,也可以说是用户的活跃区间,在这个区间段内,用户只是处于一种活跃状态,而并不是说一直保持着与服务端的交互,这也是图中的横线用的是虚线的原因。所以,并发度表达的,是系统在一定的访问分布下,可能承受的最大并发压力,它是一种可能性。

  这样这个概念应该比较容易理解了,我们再来看看并发度的值是如何得出的。继续之前的分析结果“系统的使用压力集中在2个小时内,在这个时间段内共有100个用户访问,且压力是平均分布的,平均每个用户使用系统的时间是30分钟”,依然利用刚刚做的那条线,记对应的时间轴刻度为B,我们需要知道的是,有多少条代表交互过程的横线与之相交。

  很明显,开始时间点在B之前,结束时间点在B之后的横线,它的起点必须落在从B向前一个用户活跃时长的区间内,即下图的AB区域内。

  接下来只需简单的算术就可以了,100个用户访问平均分布在2小时内,AB时长为平均用户活跃时间,即30分钟,那么在AB区域内有100*30min/2h=25个用户访问。这25个用户在B时刻都可能会与系统发生交互,对系统照成压力,虽然只是一种理论上的可能性。

  这就是并发度,理解它的意义了么?

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

转载地址:http://pwdvx.baihongyu.com/

你可能感兴趣的文章
Git常用命令查询 ;
查看>>
提高代码质量:如何编写函数
查看>>
linux的安装RPM包或者安装源码包
查看>>
iOS 9适配技巧(更新版)
查看>>
rpm包制作
查看>>
MYSQL 字符集问题
查看>>
linux 笔记本的温度提示
查看>>
fill_parent, wrap_content, match_parent
查看>>
liux查询grep命令
查看>>
【转载】nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决
查看>>
Jenkins进阶系列之——14配置Jenkins用户和权限
查看>>
Redis各个数据类型的使用场景
查看>>
Mikrotik RouterOS-脚本-语法入门
查看>>
我的友情链接
查看>>
Hibernate主键生成策略
查看>>
RHCS集群简介及配置web高可用
查看>>
静态类(即static 类)
查看>>
订单系统如何设置域名邮箱
查看>>
【搜索引擎基础知识1】搜索引擎基本架构
查看>>
DDOS***及预防
查看>>