tomcat调优

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Tomcat调优面试题的答案: 1. Tomcat的缺省端口是多少,怎么修改? Tomcat的缺省端口是8080,可以通过修改server.xml文件的Connector节点来修改端口号。 2. tomcat 有哪几种Connector 运行模式(优化)? Tomcat有三种Connector运行模式:BIO、NIO和APR。其,BIO是传统的阻塞式I/O模式,NIO是非阻塞式I/O模式,APR是使用本地库实现的高性能模式。 3. Tomcat有几种部署方式? Tomcat有两种部署方式:WAR包部署和目录部署。WAR包部署是将应用程序打包成WAR包,然后将WAR包放到Tomcat的webapps目录下;目录部署是将应用程序解压到Tomcat的webapps目录下。 4. tomcat容器是如何创建servlet类实例?用到了什么原理? Tomcat容器在启动时会扫描web.xml文件,将其的servlet类加载到内存,并创建servlet实例。Tomcat使用Java反射机制来创建servlet实例。 5. tomcat 如何优化? Tomcat的优化可以从多个方面入手,包括内存调优、垃圾回收策略调优、共享session处理、添加JMS远程监控、使用专业的分析工具等。 6. 内存调优 可以通过调整JVM的内存参数来进行内存调优,例如-Xms和-Xmx参数可以分别设置JVM的初始内存和最大内存。 7. 垃圾回收策略调优 可以通过调整JVM的垃圾回收策略来进行垃圾回收策略调优,例如使用CMS垃圾回收器或G1垃圾回收器。 8. 共享session处理 可以使用集式session管理方案,例如使用Redis等缓存服务器来存储session数据,从而实现session共享。 9. 添加JMS远程监控 可以使用JMX来进行远程监控,例如使用JConsole等工具来监控Tomcat的运行状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值