tomcat调优

本文详细介绍如何通过调整JVM参数、配置Tomcat用户、修改server.xml等手段优化Tomcat性能,包括防止远程连接、提升并发能力、隐藏版本信息等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tomcat性能调优


1、修改JVM参数

在catalina.bat中添加如下配置

set "JAVA_OPTS=%JAVA_OPTS% -server -Xms4096m -Xmx4096m -Xmn2048m -Xss512k -XX:PermSize=128m -XX:MaxPermSize=512m -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:MaxDirectMemorySize=4096m -XX:ReservedCodeCacheSize=240M -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:MaxTenuringThreshold=15 -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:-UseBiasedLocking -XX:-UseCounterDecay -XX:AutoBoxCacheMax=20000 -XX:+AlwaysPreTouch -XX:-OmitStackTraceInFastThrow -XX:SurvivorRatio=18 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:+CMSParallelRemarkEnabled -XX:+CMSScavengeBeforeRemark -XX:+ScavengeBeforeFullGC -XX:+CMSClassUnloadingEnabled -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:ErrorFile=../logs/hs_err_%p.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../logs/ -Xloggc:../logs/gc.log -Djava.awt.headless=true"


2、设置tomcat管控台用户

tomcat-users.xml

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="admin-gui,manager-gui"/>


3、修改server.xml

防止tomcat被远程telnet连接导致shutdown修改SHUTDOWN端口

<Server port="-1" shutdown="SHUTDOWN">

开启Apr监听和防止内存泄漏Listener

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />

设置tomcat并发及优化线程数

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="3000" minSpareThreads="1000" maxIdleTime="600000"
prestartminSpareThreads="true" maxQueueSize="2000"/>

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
executor="tomcatThreadPool"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
enableLookups="false"
disableUploadTimeout="true"
maxHttpHeaderSize="8192"
maxConnections="10000"
maxPostSize="10485760"
acceptCount="2000"
acceptorThreadCount="2"
compression="on"
server="Neo App Srv 1.0"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript"/>


org.apache.coyote.http11.Http11NioProtocol

org.apache.coyote.http11.Http11AprProtocol

4、隐藏tomcat版本

修改TOMCAT_HOME\lib\catalina.jar文件中org/apache/catalina/util/ServerInfo.properties文件内容如下

server.info=Apache Tomcat
server.number=0.0.0
server.built=

5、禁用AJP

若不集成Apache建议禁用AJP协议以提升效率

<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->


https://github.com/ameizi/DevArticles 相关环境集群搭建
转自https://github.com/ameizi/DevArticles/issues/158
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值