Tomcat8.5 生产环境高并发配置实战记录

小业务,流量不大,主要是接口高峰期会出现请求数比较多,使用Tomcat8.5 默认配置稳定运行了一段时间,后续业务增长巡查中发现出现内存不足,于是百度了一下优化方案。

有效优化地方:

1、增加JVM堆内存

相关说明如下:

可以给Java虚拟机设置使用的内存,但是如果选择不对的话,虚拟机不会补偿。可通过命令行的方式改变虚拟机使用内存的大小。

  -Xms<size> 表示JVM初始化堆的大小,-Xmx<size>表示JVM堆的最大值。一般建议堆的最大值设置为可用内存的最大值的80%,并将-Xms和-Xmx选项设置为相同。

具体操作方式:

Windows系统

bin目录下增加文件:setenv.bat

内容为:

SET JAVA_OPTS=-server -Xms1g -Xmx1g

可以通过Java VisualVM监控

路径:\bin\jvisualvm.exe

2、调整线程数目

第一步,打开共享的线程池

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="4000" minSpareThreads="1000" maxSpareThreads="2000" maxIdleTime="60000"
    prestartminSpareThreads = "true"
    maxQueueSize = "100"/>

第二步 在Connector里指定使用共享线程池

 <Connector executor="tomcatThreadPool" port="8080" maxHttpHeaderSize="8192"  
    maxThreads="4000" minSpareThreads="1000" maxSpareThreads="2000"  
    enableLookups="false" redirectPort="8443" acceptCount="2000"  
    connectionTimeout="20000" disableUploadTimeout="true" />

百度到还有其他优化,感觉影响不大,没有一一测试,服务器4核8g的,上面也没跑啥业务,并发大点就挂了感觉不科学,用了以上配置之后暂时稳定。

第二处优化参考了多个,参数没有具体测试会不会重复或是否生效之类的,高手请帮忙指点。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章