微软系统平台上

TOMCAT性能调优后可以稳定支持的最大并发用户数量在300人服务器配置:

 

单硬盘,SATA 8MB缓存测试服务器和loadrunner运行服务器位于同一网段

100MB网络(同一交换机)上,排除网络问题的影响服务器运行始终,
CPU使用率非常低没有超过5%
因此虽然服务器配置低,但是不是性能瓶颈所在服务器运行

在windows server 2003 sp2中文版(正版系统)
tomcat内存的设置:1.4GBJVM+256MB的池
set JAVA_HOME=C:\JAVA\JDK15
set CATALINA_OPTS=-server -Xms1400m -Xmx1400m -XX:PermSize=256m -XX:MaxPermSize=256mtomcat

线程的设置:初始产生1000线程数最大支持2000线程

<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="4000" minSpareThreads="1000"
maxSpareThreads="2000"enableLookups="false" redirectPort="8443" acceptCount="2000"
connectionTimeout="20000" disableUploadTimeout="true" /> 需要显示的JSP页面:index.jsp
---
<html>
<body>
test---tomcat
<%
System.out.println("===========================");
System.out.println("===========================");
System.out.println("===========================");
System.out.println("===========================");
System.out.println("===========================");
%>
</body>
</html>
---

类似于静态页面,以此来判断tomcat支持的最大的并发用户数量使用loadrunner设置1000并发用户数进行压力测试。

每两秒钟增加一个用户,以此递增,直至1000后,然后再按照两秒钟一个用户递减直至用户数位0.

测试结果:

Transaction Response Time Under Load1可以看到在达到600用户同时在线的时候,系统响应时间为6秒钟

100人-----响应时间0.8秒 完美150人-----响应时间1秒 完美
200人-----响应时间1.5秒 响应时间有微小波动 比较完美
250人-----响应时间1.8秒 比较完美(此时是理想情况下最大的并发用户数量)
280人-----开始出现连接丢失问题,连接开始不稳定
300人-----响应时间3秒 响应时间有较大波动峰值为6秒 较差
350人-----响应时间3秒 开始大量出现连接丢失问题 连接很不稳定
400人-----响应时间3.8秒 连接丢失数量达到3000次以上
450人-----响应时间4秒 连接丢失数量达到6000次以上
500人-----响应时间4秒 连接丢失数量达到11000次以上
550人-----响应时间6秒 连接丢失数量达到21000次以上
600人-----响应时间6秒 连接丢失数量达到25000次以上

600人开始系统出现异常情况,因此停止测试。测试数据到此为止。每秒的点击次数:

虚拟用户递增情况:

网络流量:

测试过程中成功和失败的响应结果:

 

TOMCAT 可以稳定支持的最大并发用户数的更多相关文章

  1. TOMCAT可以稳定支持的最大并发用户数

    转自:http://blog.sina.com.cn/s/blog_68b7d2f50101ann7.html 服务器配置: 单硬盘,SATA   8MB缓存 测试服务器和loadrunner运行服务 ...

  2. LoadRunner之并发用户数与迭代关系---并发数与迭代的区别

    Q1: 例如在LR里,我要测100个用户同时并发登陆所用时间,那我是不是在录制好脚本后,需要参数化“用户名”,“密码”以及在那个记事本里构造100个真实的用户名和密码? 然后运行Controller, ...

  3. TPS、并发用户数、吞吐量关系

    TPS.并发用户数.吞吐量关系 摘要 主要描述了在性能测试中,关于TPS.并发用户数.吞吐量之间的关系和一些计算方法. loadrunner TPS 目录[-] 一.系统吞度量要素: 二.系统吞吐量评 ...

  4. QPS、TPS、并发用户数、吞吐量关系

    1.QPS QPS Queries Per Second  是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即 ...

  5. 简述 QPS、TPS、并发用户数、吞吐量关系

    1. QPS QPS Queries Per Second 是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即 ...

  6. 并发用户数与 TPS 之间的关系

    1.  背景 在做性能测试的时候,很多人都用并发用户数来衡量系统的性能,觉得系统能支撑的并发用户数越多,系统的性能就越好:对TPS不是非常理解,也根本不知道它们之间的关系,因此非常有必要进行解释. 2 ...

  7. 性能测试中TPS和并发用户数

    并发用户数与TPS之间的关系 1.  背景 在做性能测试的时候,很多人都用并发用户数来衡量系统的性能,觉得系统能支撑的并发用户数越多,系统的性能就越好:对TPS不是非常理解,也根本不知道它们之间的关系 ...

  8. TPS,并发用户数,吞吐量以及一些计算公式

    TPS,并发用户数,吞吐量以及一些计算公式 基本概念 TPS:每秒同时处理的请求数/事务数 并发数:系统同时处理的请求数/事务数 响应时间:一般去平均响应时间,只有当方差过大时,去90%的响应时间值 ...

  9. IIS服务器能支持10万并发

    服务器能支持10万并发由于一个项目的访问量越来越大,从原来的几百个,增加到现在50多万个每天,所以阿里的服务器也扛不住了,于是就想办法,查了N多资料,总结了以下方法,才解决这问题,每天一共访问量50多 ...

随机推荐

  1. 2. ES6基础-let和const命令

    目录 1. let命令 1.1 用法 1. 2 不存在变量提升 1.3 区域绑定 1.4 不允许重复声明 2. const命令 2.1 用法 2.2 与let类似的特性 2.3 const本质 2.4 ...

  2. workermanPHP聊天框架项目windows环境部署实践

    一.官方下载地址: https://www.workerman.net/workerman-chat 二.下载后解压至任意目录,如下图: 三.windows需配置PHP环境变量,如下图: 四.双击st ...

  3. Android 为TV端助力之解决ViewPager嵌套RecyclerView水平滑动问题

    public class MyViewPager extends ViewPager { private RecyclerView recyclerView; public MyViewPager(@ ...

  4. 结对项目(python) 黄浩伟 黄飞越

    作者:黄浩伟 黄飞越  一 .Github项目地址: https://github.com/Flying123haha/123.git 二.psp表格: PSP2.1 Personal Softwar ...

  5. Docke 镜像加速

    一.国内获取Docker镜像时,访问 https://hub.docker.com/速度缓慢,只有几十K左右,这种情况可以使用国内的一些docker镜像,国内有些企业做了镜像拷贝工作,这样,我们就可以 ...

  6. PHP中$_SERVER全局变量的使用

    <!DOCTYPE html> <html> <body> <?php echo $_SERVER['PHP_SELF']; echo "<b ...

  7. springboot socketio

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  8. ​Python 3 新特性:类型注解——类似注释吧,反正解释器又不做校验

    ​Python 3 新特性:类型注解 Crossin ​ 上海交通大学 计算机应用技术硕士 95 人赞同了该文章 前几天有同学问到,这个写法是什么意思: def add(x:int, y:int) - ...

  9. java中异步调用注意

    Future接口是Java标准API的一部分,在java.util.concurrent包中.Future接口是Java线程Future模式的实现,可以来进行异步计算. 有了Future就可以进行三段 ...

  10. SparkSQL-通过JDBC读写mysql数据库

    object JdbcDatasourceTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builde ...