系统设计 -- 并发用户数与吞吐量

在作系统设计时,架构师但愿创建一套高性能的系统,而吞吐量(TPS)则做为衡量系统性能的重要指标。在作性能测试的时候,测试人员须要了解系统并发用户数、系统吞吐量、以及响应时间等,下面就按照这几者之间的关系简单整理以下。数据库

一、响应时间:对请求做出响应所须要的时间
网络传输时间:N1 + N2 + N3 + N4
应用服务器处理时间:A1 + A3
数据库服务器处理时间:A2
则响应时间 = N1 + N2 + N3 + N4 + A1 + A3 + A2

二、并发用户数的计算公式
系统用户数:系统额定的用户数量,如一个OA系统,可能使用该系统的用户总数是3000个,那么这个数量,就是系统用户数。
同时在线用户数:在必定的时间范围内,最大的同时在线用户数量。
同时在线用户数 = 每秒请求数RPS(吞吐量TPS) + 并发链接数 + 平均用户思考时间

服务器

  • 平均并发用户数的计算:C = n * L / T

      其中C是平均的并发用户数,n是平均天天访问用户数(login session),L是一天内用户从登陆到退出的平均时间(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)

网络

  • 并发用户数峰值计算:C1 = C + 3 * sqr(C)

      其中C1是并发用户峰值,C是平均并发用户数,sqr(C)表明C的平方根。

示例:
假设有一个OA系统,该系统有3000个用户,平均天天大约有400个用户要访问该系统,对一个典型用户来讲,一天以内用户从登陆到退出该系统的平均时间为4个小时,在一天的时间内,用户只在8小时内使用该系统。
则根据公式1和公式2,能够获得:
C = 400 * 4 / 8 = 200
C1 = 200 + 3 * sqr(200) = 242session


三、吞吐量的计算公式
吞吐量:指单位时间内系统处理用户的请求数
从业务角度看,吞吐量能够用:请求数/秒、页面数/秒、人数/天或处理业务数/小时等单位来衡量
从网络角度看,吞吐量能够用:字节/秒来衡量

一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间。
    QPS(TPS):每秒钟request/事务 数量
    并发数: 系统同时处理的request/事务数
    响应时间: 通常取平均响应时间
理解了上面三个要素的意义以后,就能推算出它们之间的关系:
QPS(TPS)= 并发数 / 平均响应时间,或者   
并发数 = QPS * 平均响应时间架构

示例:
一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登陆签到系统进行签到。公司员工为1000人,平均每一个员上登陆签到系统的时长为5分钟。能够用下面的方法计算。
QPS = 1000/(30*60) 事务/秒
平均响应时间为 = 5*60  秒
并发数= QPS*平均响应时间 = 1000/(30*60) *(5*60) = 166.7

Vu和TPS换算举例说明
TPS是每秒事务数,可是事务是要靠虚拟用户run出来的,假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1;若是某笔业务响应时间是1ms,那么1个用户在1秒内能完成1000笔事务,TPS就是1000了;若是某笔业务响应时间是1s,那么1个用户在1秒内只能完成1笔事务,要想达到1000的TPS,至少须要1000个用户;所以能够说1个用户能够产生1000TPS,1000个用户也能够产生1000TPS,主要是看响应时间快慢。并发

四、如何获取Vu和TPS性能

  • 并发用户数(Vu)获取

新系统:没有历史数据做参考,只能经过业务部门进行评估。
旧系统:对于已经上线的系统,能够选取高峰时刻,在必定时间内使用系统的人数,这些人数认为属于在线用户数,并发用户数取10%就能够了,例如在半个小时内,使用系统的用户数为10000,那么取10%做为并发用户数基本就够了。测试

  • 吞吐量(TPS)获取

新系统:没有历史数据做参考,只能经过业务部门进行评估。
旧系统:对于已经上线的系统,能够选取高峰时刻,在5分钟或10分钟内,获取系统每笔交易的业务量和总业务量,按照单位时间内完成的笔数计算出TPS,即业务笔数/单位时间(5*60或10*60)网站

所以对于大型系统、业务量很是高、硬件配置足够多的状况下,5000用户并发就足够了;对于中小型系统,1000用户并发就足够了。设计

五、TPS与硬件、网络配置

  • 基准参数

平均响应时间1S
TPS峰值242
页面平均大小20KB
每页平均包含20张图片,每张图片平均大小50KB

  • PV估算

平均一天8个小时工做时间都按峰值估算,TPS * 8 * 60 * 60 = 6969600

  • 数据库估算

假设每一个页面平均执行3个SQL,每一个SQL平均耗时100毫秒,数据库须要的并发数为3 * 242 / 0.1S = 73

  • 带宽估算

应用服务器带宽,页面平均大小20KB,平均响应时间1S,去除数据库的交互时间(1000ms - 3 * 100ms)后为700ms,平均每一个requst带宽是28.57KB/S,最大带宽242 * 28.57 / 1024 = 6.75MB/S
图片服务器带宽估算相似应用服务器

  • CPU估算、内存估算

对于天天1千万PV(并发100用户)网站的解决方案:处理器:8核 内存:16G 带宽:50Mbps数据库内存:16G

相关文章
相关标签/搜索