Tomcat配置优化

一、tomcat内存优化

打开bin下catalina.bat文件

 

在文件的第一处非注释行出添加

1 set JAVA_OPTS=-server -Xms2g -Xmx2g -Xss256k

  

参数含义:

-server:以server模式运行java程序

-Xms:初始化堆内存大小

-Xmx:堆内存最大容量

-Xss:设定每个线程的堆栈大小

  JDK9之前ParallelGC作为默认垃圾回收器,优化配置JVM需要设置大量参数,诸如-XX:NewRatio、-XX:SurvivorRatio等等,但随着JDK不断更迭,繁琐的参数已经不再需要且不再支持。JDK9开始,G1作为默认的垃圾回收器,G1GC 不必明确设置新生代大小,其自动调优也十分可靠,对于停顿时间往往在长时间运行后可以达到预期效果。不建议进行过多的配置。

二、tomcat线程池优化

打开conf下server.xml

 

全局搜索executor,在注释中可以找到,同节点位置添加:

1 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" deamon="true"
2       minSpareThreads="100" maxSpareThreads="300" maxThreads="600"
3 maxQueueSize="1000000" maxIdleTime="60000"
4        prestartminSpareThreads="true"/>

然后搜索Connector,找到tomcat的http连接器,添加连接器与线程池关联

1 <Connector port="8080" protocol="HTTP/1.1"
2    connectionTimeout="20000"
3    redirectPort="8443"
4    executor="tomcatThreadPool" />

参数含义:

namePrefix:线程池中线程的命名前缀。

deamon : 是否守护线程运行,默认为true 

minSpareThreads:Tomcat线程池的最小空闲线程数,等于初始的线程数。

maxSpareThreads:Tomcat最大空闲线程数,超过的会被关闭。

maxThreads:Tomcat 可用于处理请求的最大线程数,默认是200。

maxIdleTime :空闲线程的存活时间 默认为60s,当线程空闲超时后,线程被回收

maxQueueSize :任务队列最大大小,默认为Integer.MAX_VALUE  (2147483647 )这太大了 有点不合适

prestartminSpareThreads :是否在tomcat启动时就创建minSpareThreads个线程放入线程池,默认为false

executorTerminationTimeoutMillis :在停止executor时,等待请求处理线程终止的超时时间

三、Tomcat连接器优化

打开conf下server.xml

 

搜索Connector,找到tomcat的http连接器,添加参数如下

1 <Connector port="8080" protocol="HTTP/1.1"
2                connectionTimeout="20000"
3                redirectPort="8443" 
4                executor="tomcatThreadPool"
5                maxConnections="10000"
6                acceptCount="1000"
7                enableLookups="false" />

参数含义:

maxConnections:最大连接数,当达到该值后,服务器接收但不会处理更多请求,额外的请求将会进入TCP等待队列。默认值为8192。

acceptCount:最大排队等待数,即连接数达到maxConnections后的TCP等待队列。默认为100。

enableLookups: request.getRemoteHost()获取远程计算机ip,Tomcat9默认为关闭。

四、tomcat日志优化

打开conf目录下logging.properties文件

 

搜索所有编码设置行,进行注释即可

 

原理:由于tomcat9开始默认为UTF-8编码,鉴于windows默认本地编码不同,会出现日志乱码,解决方法为注掉tomcat配置的编码,这样tomcat就会调用系统默认编码。

五、Tomcat安全优化(适用于生产环境)

移除webapps目录下的所有应用,防止server管理带来的安全漏洞

 

禁用远程shutdown的端口

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

或改变shutdown指令 

1 <Server port="8005" shutdown="tomcat_shutdown">

六、Tomcat部署优化(适用于测试环境) 

1,配置tomcat管理用户

在tomcat配置文件目录找到tomcat-users.xml

 

在配置文件tomcat-users标签内添加下列内容

1 <role rolename="manager-script"/>
2 <user username="root" password="root" roles="manager-script"/>

2,开启管理用户通过网络远程热部署 

在conf/Catalina/localhost目录中建立manager.xml文件

 

编辑manager.xml文件内容为

1 <?xml version="1.0" encoding="UTF-8"?>
2 <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
3     <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
4 </Context>

3,开发环境tomcat插件配置 

打开开发环境中maven项目pom文件,找到maven插件tomcat7-maven-plugin,进行相应的参数配置

 1 <plugin>
 2     <groupId>org.apache.tomcat.maven</groupId>
 3     <artifactId>tomcat7-maven-plugin</artifactId>
 4     <version>2.2</version>
 5     <configuration>
 6         <url>http://127.0.0.1:8080/manager/text</url>
 7         <username>root</username>
 8         <password>root</password>
 9         <update>true</update>
10         <path>/centerbusiness</path>
11     </configuration>
12 </plugin>

 

原文地址:https://www.cnblogs.com/guanghe/p/13603631.html