在线⽤户数与并发⽤户数的区别和⽐例关系
在线⽤户数:⽤户同时在⼀定时间段的在线数量
并发⽤户数:某⼀时刻同时向服务器发送请求的⽤户数
⼀般⽽⾔,我们习惯以5-20的⽐率来推算并发⽤户与在线⽤户之间的关系。即,并发与在线的⽐例约为5%-20%
⽐如,某⽹站存在注册⽤户数为10W⼈,但同时在线最多1W⼈,但这1W个⼈,可能只有500⼈会浏览帖⼦,500⼈会进⾏发帖,只有这1000个⼈对服务器才有交易,那我们计算并发量的时候,就可以以1000为标准!
============================================================
昨天读完了段念写的《软件性能测试过程详解与案例剖析》⼀书的第⼀章,感觉学到了不少东西,以下将该书中的我认为是精华的⼀篇过来给⼤家⼀起看看:
在实际的性能测试中,经常接触到的与并发⽤户数相关的概念还包括“并发⽤户数”、“系统⽤户数”和“同时在线⽤户数”,下⾯⽤⼀个实际的例⼦来说明它们之间的差别。
假设有⼀个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
博客为什么没人用了,请⼤家不要见笑,虽然上⾯写的都是很基础的东西,但是对我本⼈来讲,在还没有看这本书之前,这些概念我是特别模糊的。
=====================================================================
并发连接数、请求数、并发⽤户数
概念
并发连接数-SBC(Simultaneous Browser Connections)
并发连接数指的是客户端向服务器发起请求,并建⽴了TCP连接。每秒钟服务器链接的总TCP数量,就是并发连接数。
请求数-QPS(Query Per Second)/RPS(Request Per Second)
请求数有2个缩写,可以叫QPS也可以叫RPS。单位是每秒多少请求。Query=查询,也相当于请求。请求数指的是客户端在建⽴完连接后,向http服务发出GET/POST/HEAD数据包,服务器返回了请求结果后有两种情况:
http数据包头包含Close字样,关闭本次TCP连接;
http数据包头包含Keep-Alive字样,本次连接不关闭,可继续通过该连接继续向http服务发送请求,⽤于减少TCP并发连接数。
服务器性能怎么测?
通常情况下,我们测试的是QPS,也就是每秒请求数。不过为了衡量服务器的总体性能,测试时最好⼀起测试并发连接数和请求数。
测试原理
测试并发连接数采⽤每个并发1请求,多个并发进⾏;
测试请求数采⽤多并发、每个并发多个请求进⾏,总的请求数将会=并发数*单并发请求数,需要注意的是不同的并发和单并发请求数得出来的结果会不同,因此最好测试多次取平均值。
区分请求数意义何在?
⼤家打开Chrome浏览器,按下F12,切换到Network选项卡,随便打开⼀个⽹页,按下F5刷新,将会看到刷刷⼀堆的请求。这⾥给出某⼤⽜收集来的不同浏览器产⽣的单站点并发连接数:
浏览器HTTP 1.1HTTP 1.0
IE 6,724
IE 866
Firefox 228
Firefox 366
Safari 3, 444
Chrome 1,26?
Chrome 344
Opera 9.63,10.00alpha44
以Chrome为例,假设服务器设置的是Close(⾮持久连接),浏览器打开⽹页后,⾸先打开4个并发加载数据,在这些请求完成后关闭4个连接,再打开4个并发连接加载数据。也就是说,并不是这个⽹页有100个请求就会产⽣100并发,⽽是4个并发连接并⾏。假设服务器设置的是keep-alive(持久连接),浏览器打开⽹页后,⾸先打开4个并发加载数据,在这些请求完成后不关闭连接,⽽是继续发出请求,节约重新打开连接的时间。
主机到底能多少⼈在线?
看到这⾥相信你已经知道答案了,这个问题⽆解,根据⽹页的内容⼤⼩和单⽹页的请求数和服务器的配置⽽定,这个数据的浮动值⾮常⼤所以⽆法测量。因此能承诺保证多少⽤户在线就是坑爹的主机商!
并发⽤户
并发⽤户数量,有两种常见的错误观点。⼀种错误观点是把并发⽤户数量理解为使⽤系统的全部⽤户的数量,理由是这些⽤户可能同时使⽤系统;还有⼀种⽐较接近正确的观点是把⽤户在线数量理解为并发⽤户数量。实际上,在线⽤户不⼀定会和其他⽤户发⽣并发,例如正在浏览⽹页的⽤户,对服务器是没有任何影响的。但是,⽤户在线数量是统计并发⽤户数量的主要依据之⼀。
并发主要是针对服务器⽽⾔,是否并发的关键是看⽤户操作是否对服务器产⽣了影响。因此,并发⽤户数量的正确理解为:在同⼀时刻与服务器进⾏了交互的在线⽤户数量。这些⽤户的最⼤特征是和服务器产⽣了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据。
并发⽤户数量的统计的⽅法⽬前还没有准确的公式,因为不同系统会有不同的并发特点。例如OA系统统计并发⽤户数量的经验公式为:使⽤系统⽤户数量*(5%~20%)。对于这个公式是没有必要拘泥于计算的结果,因为为了保证系统的扩展空间,测试时的并发⽤户数量要稍微⼤⼀些,除⾮是要测试系统能承载
的最⼤并发⽤户数量。举例说明:如果⼀个OA系统的期望⽤户为1000个,只要测试出系统能⽀持200个并发⽤户就可以了。
===============================================================================
近⽇,Hitest在其技术博客上发表了⼀篇题为《并发⽤户数与TPS之间的关系》的⽂章,⽂章对TPS和并发⽤户数做了详细的解释,并针对
性能测试中系统性能的衡量维度和测试策略给出了⾃⼰的建议。Hitest是阿⾥巴巴技术质量部提供的⼀款Web&移动应⽤安全测试SaaS化服务平台,旨在帮助开发者简单快捷地进⾏安全测试。
在⽂中,作者⾸先对并发⽤户数和TPS做了解释:
并发⽤户数:是指现实系统中操作业务的⽤户,在性能测试⼯具中,⼀般称为虚拟⽤户数(Virutal User)。并发⽤户数和注册⽤户数、在线⽤户数的概念不同,并发⽤户数⼀定会对服务器产⽣压⼒的,⽽在线⽤户数只是 ”挂” 在系统上,对服务器不产⽣压⼒,注册⽤户数⼀般指的是数据库中存在的⽤户数。
TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的⼀个⾮常重要的指标。
作者认为现在很多从业⼈员在做性能测试时,都错误的认为系统能⽀撑的并发⽤户数越多,系统的性能就越好。要理解这个问题,⾸先需要了解TPS和并发⽤户数之间的关系:
TPS就是每秒事务数,但是事务是基于虚拟⽤户数的,假如1个虚拟⽤户在1秒内完成1笔事务,那么TPS明显就是1;如果某笔业务响应时间是1ms,那么1个⽤户在1秒内能完成1000笔事务,TPS就是1000了;如果某笔业务响应时间是1s,那么1个⽤户在1秒内只能完成1笔事务,要想达到1000TPS,⾄少需要1000个⽤户;因此可以说1个⽤户可以产⽣1000TPS,1000个⽤户也可以产⽣1000TPS,⽆⾮是看响应时间快慢。
也就是说,在评定服务器的性能时,应该结合TPS和并发⽤户数,以TPS为主,并发⽤户数为辅来衡量系统的性能。如果必须要⽤并发⽤户数来衡量的话,需要⼀个前提,那就是交易在多长时间内完成,因为在系统负载不⾼的情况下,将思考时间(思考时间的值等于交易响应时间)加到脚本中,并发⽤户数基本可以增加⼀倍,因此⽤并发⽤户数来衡量系统的性能没太⼤的意义。
作者最后做了综述,他认为在性能测试时并不需要⽤上万的⽤户并发去进⾏测试,如果只需要保证系统处理业务时间⾜够快,⼏百个⽤户甚⾄⼏⼗个⽤户就可以达到⽬的。据他了解,很多专家做过的性能测试项⽬基本都没有超过5000⽤户并发。因此对于⼤型系统、业务量⾮常⾼、硬件配置⾜够多的情况下,5000⽤户并发就⾜够了;对于中⼩型系统,1000⽤户并发就⾜够了。
性能测试需要⼀套标准化流程及测试策略,在实际测试时我们还需要考虑其它⽅⾯的问题,⽐如如何模拟成千上万来⾃不同地区⽤户的访问场景、如何选⽤合适的测试软件。性能测试对⼀些⼩的团队来说并
⾮易事,不过前段时间阿⾥云发布了性能测试服务PTS,PTS可以帮助开发者通过分布式并发压⼒测试,模拟指定区域和指定数量的⽤户同时访问,提前预知⽹站承载⼒。这就是云计算给我们带来的便利。
Tags:
例如OA系统使⽤⽤户是100个,这个就是系统⽤户数,该系统有⼀个统计查询功能,最⾼峰在线50⼈,那么系统的并发数是多少? OA系统使⽤⽤户是100个,这个就是系统⽤户数. 最⾼峰值50⼈同时在线,只表明同时登录了这个模块,并不表⽰实际服务器承受的压⼒.因为服务器承受的压⼒还与具体的⽤户访问模式相关.这50⼈在线,有可能开着电脑溜达去了,有的看的别的模块等等. ...
以下内容结合了其他⽹友发表的内容,⾸先再次表⽰感谢. 假设⼀个系统有2000个使⽤者(对于⼀般的企业系统,这个概念⽐较简单,就是指数据库中的⽤户总数,但对于⽹站型的系统⽽⾔,相对较为复杂,⼀般为注册⽤户和游客的总和),也就是说,该系统的⽤户总数是2000名,这个概念表⽰的是"系统⽤户数".如果该系统具有" 在线统计"功 ...
与并发⽤户数相关的概念还包括"并发⽤户数"."系统⽤户数"和"同时在线⽤户数",下⾯⽤⼀个实际的例⼦来说明它们之间的差别. 假设有⼀个OA系统,该系统有2000个使⽤⽤户--这就是说,可能使⽤该OA系统的⽤户总数是2000名,这个概念就是"系统⽤户数",该系统有⼀...
1. 背景在做性能测试的时候,很多⼈都⽤并发⽤户数来衡量系统的性能,觉得系统能⽀撑的并发⽤户数越多,系统的性能就越好:对TPS不
是⾮常理解,也根本不知道它们之间的关系,因此⾮常有必要进⾏解释. 2. 术语定义 Ø 并发⽤户数:指的是现实系统中操作业务的⽤户,在性能测试⼯具中,⼀般称为虚拟⽤户数(Virutal User),注意并发⽤户数跟注册⽤户数.在线⽤ ...
1.背景在做性能测试的时候,很多⼈都⽤并发⽤户数来衡量系统的性能,觉得系统能⽀撑的并发⽤户数越多,系统的性能就越好:对TPS不
是⾮常理解,也根本不知道它们之间的关系,因此⾮常有必要进⾏解释.2.术语定义Ø并发⽤户数:指的是现实系统中操作业务的⽤户,在性能测试⼯具中,⼀般称为虚拟⽤户数(Virutal User),注意并发⽤户数跟注册⽤户数.在线⽤户数有很⼤差 ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论