Tomcat 调优探索

电脑环境:window10 i5-7200U  4核

Tomcat版本:apache-tomcat-8.5.57

压测工具:jemeter   并发数为4000左右,该并发数为多次测试的结果,受电脑性能,数据包的大小等因素影响

部署一个Springboot 应用,创建一个rest接口用来测试,下面是响应数据(不连接数据库):

{"1":"张三1","2":"张三1","3":"张三1","4":"张三1","5":"张三1","6":"张三1","7":"张三1","8":"张三1","9":"张三1","10":"张三1"}

一、官网下载tomcat  https://tomcat.apache.org/download-80.cgi 

二、部署一个javaweb项目, jmeter 对接口进行压力测试

三、开始测试:

     1、 选择jmeter线程组测试, 设置并发数

      

      2、在选择HTTP Request

      

      3、添加监测结果

      

    4、多次测试结果

      压力测试从1000,逐步增加,经过多次测试,发现在在默认配置下,4000的并发,Tomcat的吞吐量能达到峰值,大概在1000左右

      

      在4000并发条件下,多次测试,会报错,客户端连接错误,应该是连接数达到上限,后续连接被拒绝,所以这个为后续优化提供了参考,提高Tomcat连接池数量,默认只有一百多

      

       用java自带的工具,jconsole 、jvisualvm来监控jvm状况,可以清楚的看见垃圾回收情况,进过不断的压力测试,发现年轻代经常发生垃圾回收,说明两个问题:内存分配太小、垃圾回收效率,可见适当增加堆内存、选择垃圾回收器也是一个优化的方向。Tomcat默认采用Parallel Scavenge(年轻代)、Concurrent Mark Sweep(老年代),可优化为G1垃圾回收器

      

    

四、调整Tomcat参数

     1、提高Tomcat线程池数量,效果明显

  <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1"   connectionTimeout="20000" redirectPort="8443" />
  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" prestartminSpareThreads="true" maxQueueSize="100"/>

      

 

  2、进一步优化Tomcat启动JVM参数, 在catalina.bat 文件开头设置相关参数

  set JAVA_OPTS=-Xms2048m -Xmx2048m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log

      

 

   发老年代、年轻代垃圾回收的次数减少了, 也可对gc日志进行分析

     

    3、继续优化,使用G1GC,发现已没有full  GC了,暂停时间大大缩短,堆内存一直处于健康状态

 set JAVA_OPTS=-XX:+UseG1GC -Xms512m -Xmx2048m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log

        

    总结:对Tomcat进行调优无非从以下几个方面

    1、在server.xm   <Connector/>标签中配置 Tomcat的executor="tomcatThreadPool",适当增加线程数量,压测到最佳值。

    2、优化Tomcat  catalina.bat(Linux中catalina.sh)中启动参数,适当增加内存

    3、优化Tomcat默认的垃圾回收机制

    4、优化web.xml 中一些多余的配置,减少资源开销 

    

   文章详情请查看: http://www.xiaoyuge.com.cn/#/article/detail?articleId=62

 

    

         

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值