jmeter对tomcat性能测试

主要对tomcat的参数做一些记录(jmeter和tomcat在同一个计算机,可能引起测试误差)

我的计算机配置  4核8线程  8G内存

案例一

tomcat  JVM  1.8G堆内存,无数据库操作

#最大线程数server.tomcat.maxThreads =10000 #这个参数是指在同一时间,tomcat能够接受的最大连接数,一般这个值要大于maxThreads+acceptCountserver.tomcat.maxConnections =20000#当线程数量达到最大线程数时所允许的最大等待队列的长度server.tomcat.acceptCount =200#最小空闲线程数server.tomcat.minSpareThreads =10

  并发数 平均响应时间 响应时间中位数 90%用户的响应时间 95%用户的响应时间 99%用户的响应时间 最小响应时间 最大响应时间 错误率 吞吐量(s) 每秒发送的数据(KB) 每秒接受的数据(KB)
HTTP Request 1000 354 337 850 862 873 1 879 0.0% 887.3 103.9 274.6
HTTP Request 5000 1000 1047 1725 2009 2422 94 2721 0.0% 802.9 94.0 248.5
HTTP Request 10000 1692 1389 3265 3582 3918 137 6016 0.0% 699.8 78.5 207.3
HTTP Request 15000 1166 945 2565 2877 3958 5 5347 47.3% 496.7 611.7 80.9
HTTP Request 20000 1477 1355 2883 3244 4273 5 5298 17.7% 680.2 363.8 172.2

分析:在tomcat允许最大10000线程的情况下,并发数越大,响应时间越长,吞吐量越小。在某时刻会发生连接错误。

案例二

tomcat  JVM  1.8G堆内存,无数据库操作

#最大线程数server.tomcat.maxThreads =800 #这个参数是指在同一时间,tomcat能够接受的最大连接数,一般这个值要大于maxThreads+acceptCountserver.tomcat.maxConnections =20000#当线程数量达到最大线程数时所允许的最大等待队列的长度server.tomcat.acceptCount =200#最小空闲线程数server.tomcat.minSpareThreads =10
  并发数 平均响应时间 响应时间中位数 90%用户的响应时间 95%用户的响应时间 99%用户的响应时间 最小响应时间 最大响应时间 错误率 吞吐量(s) 每秒发送的数据(KB) 每秒接受的数据(KB)
HTTP Request 1000 1806 2019 2356 2410 2497 975 2582 0.0% 385.8 45.2 119.4
HTTP Request 5000 2353 2210 3582 4159 4341 618 4538 49.74% 874.3 1255.4 136.0

分析:在tomcat允许最大800线程的情况下,并发数不能超过800太多(1000可以),不然会有很多的请求会因为tomcat的接受请求线程全被占用而被tomcat服务器拒绝接受。Address already in use: connect

案例三

tomcat  JVM  1.8G堆内存,无数据库操作

#最大线程数server.tomcat.maxThreads =20000 #这个参数是指在同一时间,tomcat能够接受的最大连接数,一般这个值要大于maxThreads+acceptCountserver.tomcat.maxConnections =30000#当线程数量达到最大线程数时所允许的最大等待队列的长度server.tomcat.acceptCount =200#最小空闲线程数server.tomcat.minSpareThreads =10
  并发数 平均响应时间 响应时间中位数 90%用户的响应时间 95%用户的响应时间 99%用户的响应时间 最小响应时间 最大响应时间 错误率 吞吐量(s) 每秒发送的数据(KB) 每秒接受的数据(KB)
HTTP Request 20000 1638 1330 3210 3872 4382 4 4619 13.26% 717.6 311.8 192.6
HTTP Request 15000 1597 1406 315 3276 4116 3 4994 1.22% 767.2 114.7 234.6
HTTP Request 8000 1726 1729 2905 2993 4099 82 4768 0.0% 797.7 94.8 246.8
HTTP Request 5000 2171 2073 3423 3844 4498 334 4892 0.0% 753.1 100.6 231.7
HTTP Request 3000 2075 2214 3265 3391 3656 1 3736 0.0% 712.8 83.53 220.6
HTTP Request 1000 461 565 843 874 992 2 998 0.0% 796.2 93.3 246.4

分析:和案例一相比类似,最大线程数不是越大越好,线程数的增多或导致过多的线程上下文切换,耗费时间。导致单个响应时间的上升。

总结:maxThreads并没有一个最优的值,需要根据系统的配置和项目内容来不断地测试,调整和优化。最终得到合理的配置。在tomcat的配置相同的情况并且相同的并发下,响应时间,错误率,吞吐量也存在较大差异,主要是因为系统的真实环境不同,可能系统本来就有较多线程在运行。

5000并发

原文地址:https://www.cnblogs.com/ll9507/p/11374487.html

时间: 2024-10-08 20:12:21

jmeter对tomcat性能测试的相关文章

Jmeter之tomcat性能测试+性能改进措施

Jmeter用于tomcat性能测试,因为项目部署在tomcat,正常情况下,一个tomcat可以承受500个并发,通过修改配置,及其相关的tomcat优化,可以承受到1000个并发. 如何测试tomcat优化前和优化后的结果? 通过Jmeter测试,就能达到对应的效果 Jmeter测试tomcat比较简单 1.建立对应的线程组 2.建立Http请求 需要填写的一个是协议名称,一个是IP地址或域名,一个是端口号,还有一个是路径 这个路径默认不填也行,如果具体到post或get请求及其携带参数,就

JMeter 深入进阶性能测试体系 各领域企业实战

详情请交流  QQ  709639943 00.JMeter 深入进阶性能测试体系 各领域企业实战 00.30天搞定大数据爬虫项目 00.零基础实战机器学学习 00.企业级实战 Spark离线和实时电影推荐系统 00.三大项目掌握Storm流计算 00.道路交通实时流量监控预测系统 00.基于Spark2.x新闻网大数据实时分析可视化系统 00.小码哥Java大神班五期 任小龙SSM Spring5 Mybatis SpringMVC 00.Python玩转人工智能框架 TensorFlow 0

Jmeter Http接口性能测试

Jmeter Http接口性能测试 1.      启动Jmeter Jmeter下载解压即可使用,Jmeter启动,点击D:\ProgramFiles\jmeter\apache-jmeter-2.8\bin下的jmeter.bat就可以了. 2.      添加线程组 如下图添加线程组 线程组相当于loadrunner的vuser,这里配置线程组的各项内容.主要有以下几点需要配置: 1)线程数:设置发送请求的线程数目. 2)Ramp-up period: 就是总共设定的线程数据在多长时间内启

【转】JMeter学习(十四)JMeter监控Tomcat性能

使用jmeter的tomcat监视器功能,可以通过向tomcat的status页面发送get请求,得到资源使用信息,然后转换为只直观的图像方式,这样的话,就可以监视到服务器的资源使用情况,不过需要注意的是,要使用tomcat监视器功能,就必须在要监视的服务器上装有tomcat. 一.  配置$CATALINA_HOME/conf/tomcat-users.xml.配置如下: <?xml version='1.0' encoding='utf-8'?> <tomcat-users>

JMeter学习(十四)JMeter监控Tomcat性能

使用jmeter的tomcat监视器功能,可以通过向tomcat的status页面发送get请求,得到资源使用信息,然后转换为只直观的图像方式,这样的话,就可以监视到服务器的资源使用情况,不过需要注意的是,要使用tomcat监视器功能,就必须在要监视的服务器上装有tomcat. 一.  配置$CATALINA_HOME/conf/tomcat-users.xml.配置如下: <?xml version='1.0' encoding='utf-8'?> <tomcat-users>

利用Jmeter进行分布式性能测试

老大交代了个接口性能测试的小任务,本来呢他提议用LR,但我对这么大体积的玩意儿真不待见,所以就倒腾起JMeter. 具体任务内容就不多说了,基本要求是有1200的并发.但是我们发现JMeter运行800个线程左右就顶不上去了,基本运行一会就卡死.百度之(不以用百度为耻),貌似可以用JMeter分布式测试来达成目的,它所谓的分布式架构,其实也就是有一个Master或者Controller,控制其余多台机器运行,即所谓的 Agent或者Slave 来分担 JMeter自身的压力,由此扩展其性能,获取

Ant+jmeter 实现自动化性能测试

Jmeter是比较好的性能测试工具,而且免费,但是有一个问题是工具没有自带的定时自动测试的功能.晚上11点要压一个怎么办?所以查到了ant,正好有相应的JMeterTask.加上linux上的crontab功能,就可以实现定时自动化性能测试了! 工具准备: Jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html Jmeter http://jmeter.apache.org/ Ant http://ant.ap

JMeter简单的性能测试实例

JMeter基础之--一个简单的性能测试 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测试目标网站是fnng.cnblogs.com  和 tt-topia.rhcloud.com 2)测试目的是该网站在负载达到20 QPS 时的响应时间. QPS 解释 QPS:Query Per Second 每秒查询率.是一台查询服务器每秒能够处理的查询次数.在因特网上,作为域名系统服务器的机器的

使用JMeter对Tomcat进行压力测试与Tomcat性能调优

一.准备工作. 1.安装JDK1.6或1.6版本以后的,并配置环境变量. 2.在Apache的官网下载最新的Jmeter,http://jmeter.apache.org/download_jmeter.cgi,截止目前为止,最新的Jmeter是2.12版本,需要注意的是下载使用的时候不能下载source版本的,必须下载内容更加完整的binaray版本的,比如如果下载apache-jmeter-2.12_src.zip,运行jmeter.bat时,会出现下面的exception: unable