Tomcat最大并发数及在线用户数
一:关于系统用户数,并发用户数,在线用户数,吞吐量概率
1.系统用户数
侠义上来说,可以理解为系统注册用户数;广义上来说,可以理解为所有访问过系统的用户数
2.在线用户数
侠义上来说,可以理解为已登录系统的用户数;广义来说,可以理解为当前时间访问系统的用户数。
3.并发用户数
可以分两种:
1)同一时间点,执行同一(业务)操作的用户数
2)同一时间点,执行不同(业务)操作的用户数
注意:服务器实际承受的压力并不完全取决于并发用户数,详情见下面的例子。
例子:
作为专业软件测试论坛,会有很多测试者去论坛注册帐号。
假设到现在已有75万在该论坛注册会员,那我们可以说,该论坛拥有75万的系统用户;
假设在某日早上9点,已有10万会员登陆了论坛,那么我们可以说,该论坛在某日9点时拥有10万的在线用户;
假设在这10万已登陆会员中,某个时间点,有2万会员正在提交新帖子,有3万会员正在编写帖子(假设编写帖子不会产生服务器请求操作);有1万会员在帖子页面浏览某帖子内容;有1万会员正在发呆,啥也不做;还有3万会员正在点击某个帖子,那么我们可以说,某时间点,有2万个并发用户在提交新帖子,有3万个并发用户在编写帖子,有1万个并发用户浏览帖子内容,有3万个并发用户在点击某个帖子,,系统有9万的并发用户。
值得注意的是,这9万并发用户中,真正对系统产生压力的只有5万用户,即提交新帖和点击帖子的用户。换句话说,仅对系统发起了请求的并发用户才会对系统施加压力
4.吞吐量
性能测试中,可以侠义的理解为“单位时间内系统处理的用户请求的数量”。一般情况,吞吐量用请求数/秒、页面数/秒来衡量,从业务的角度,吞吐量也可用单位时间内的访问人数、处理的业务数等进行衡量。从网络角度来,也可以单位时间内的处理的数据量等进行衡量。
例如:
对于一个Web应用系统来说,从系统的处理能力考虑,可以以页面数/秒作为吞吐量的标准;对一个银行的前台业务来说,可以以其单位时间内处理的业务数作为吞吐量的标准。
二:计算方法
我们都知道tomcat 默认并发数为150-250,但是这么计算出最大在线用户数呢;
1、经典公式1: 一般来说,利用以下经验公式进行估算系统的平均并发用户数和峰值数据
1)平均并发用户数为 C = nL/T 2)并发用户数峰值 C‘ = C + 3*根号C C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度 C’是并发用户数峰值
举例1,假设系统A,该系统有3000个用户,平均每天大概有400个用户要访问该系统(可以从系统日志从获得),对于一个典型用户来说,一天之内用户从登陆到退出的平均时间为4小时,而在一天之内,用户只有在8小时之内会使用该系统。 那么, 平均并发用户数为:C = 4004/8 = 200 并发用户数峰值为:C‘ = 200 + 3根号200 = 243
举例2, 某公司为其170000名员工设计了一个薪酬系统,员工可进入该系统查询自己的薪酬信息,但并不是每个人都会用这个系统,假设只有50%的人会定期用该系统,这些人里面有70%是在每个月的最后一周使用一次该系统,且平均使用系统时间为5分钟。 则一个月最后一周的平均并发用户数为(朝九晚五): n = 1700000.50.7/5 = 11900 C= 11900*5/60/8 = 124
吞吐量计算为:F = Vu * R / T 单位为个/s F为事务吞吐量,Vu为虚拟用户数个数,R为每个虚拟用户发出的请求数,T为处理这些请求所花费的时间
2、通用公式2: 对绝大多数场景,我们用(用户总量/统计时间)影响因子(一般为3)来进行估算并发量。 比如,以乘坐地铁为例子,每天乘坐人数为5万人次,每天早高峰是7到9点,晚高峰是6到7点,根据8/2原则,80%的乘客会在高峰期间乘坐地铁,则每秒到达地铁检票口的人数为5000080%/(36060)=3.7,约4人/S,考虑到安检,入口关闭等因素,实际堆积在检票口的人数肯定比这个要大,假定每个人需要3秒才能进站,那实际并发应为4人/s*3s=12,当然影响因子可以根据实际情况增大!
3、根据PV计算公式: 比如一个网站,每天的PV大概1000w,根据2/8原则,我们可以认为这1000w pv的80%是在一天的9个小时内完成的(人的精力有限),那么TPS为: 1000w80%/(93600)=246.92个/s,取经验因子3,则并发量应为: 246.92*3=740
4、根据TPS估计: 公式为 C = (Think time + 1)*TPS
5、根据系统用户数计算: 并发用户数 = 系统最大在线用户数的8%到12%
三:结论
通过第5种方法计算得出最大在线用户2000-3000;