Tomcat调优

Tomcat调优

 

  • Tomcat   免费、开源、轻量级。
  • 在中小型系统和并发不是很多的情况下使用的相对多一些。
  • 目前 Tomcat 最新版本为 9.0

 

Tomcat调优:
server.xml : 是tomcat 的主要配置文件,大部分调整都是改这个文件。 

context.xml :主要用到的是开启 tomcat 缓存,在 context.xml 末尾增加一行,可以消除缓存不足的警告:

<Resources cachingAllowed="true" cacheMaxSize="100000"> 


 
server.xml的修改优化:


1、打开连接池配置


默认是关闭的:

<!-- 
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
        maxThreads="150" minSpareThreads="4"/> 
--> 


修改方式:

<Executor  
    name="tomcatThreadPool"  
    namePrefix="catalina-exec-" 
    maxThreads="500"  
    minSpareThreads="100"  
    prestartminSpareThreads = "true" 
    maxQueueSize = "100" 
/> 


修改参数说明:

maxThreads:最大并发数,默认设置 200,一般建议在 500 ~ 800,根据硬件设施和业务来判断 
minSpareThreads:Tomcat 初始化时创建的线程数,默认设置 25 
prestartminSpareThreads :在 Tomcat 初始化的时候就初始化minSpareThreads 的值。如果不等于true的话,                                                                           minSpareThreads 的值就没效果。 
maxQueueSize:最大的等待队列数,超过则拒绝请求。 

 

2、修改连接参数配置 


默认的:

<Connector port="8080" protocol="HTTP/1.1" 
 connectionTimeout="20000" 
 redirectPort="8443" />

修改方式:

<Connector  
 executor="tomcatThreadPool"  
 port="8080"  
 protocol="org.apache.coyote.http11.Http11Nio2Protocol" 
 connectionTimeout="20000" 
 maxConnections="10000"  
 redirectPort="8443" 
 enableLookups="false" 
 acceptCount="100"  
 maxPostSize="-1"  
 compression="on"  
 disableUploadTimeout="true"  
 compressionMinSize="2048"  
 acceptorThreadCount="2"  
 compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/ecmascript,application/x-ecmascript"  
 useSendfile="false" 
 URIEncoding="utf-8" 
/>


修改参数说明:

protocol: 
             Tomcat 8 设置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol; 
             Tomcat 6、7 设置 nio 更好:org.apache.coyote.http11.Http11NioProtocol 
enableLookups:禁用 DNS 查询 
acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个    
                          数的请求将不予处理,默认设置 100 
maxPostSize:以 FORM URL 参数方式的 POST 提交方式,限制提交最大的 大小,默认是 2097152(2 兆),它 
                          使用的单位是字节。10485760 为 10M。如 果要禁用限制,则可以设置为 -1。 
acceptorThreadCount:用于接收连接的线程的数量,默认值是 1。一般这个指 需要改动的时候是因为该服务器 
                                         是一个多核 CPU,如果是多核 CPU 一般配 置为 2. 
useSendfile:属性默认为 true, 会禁用任何可能的压缩, 改成 false 就好了 
compression:打开压缩功能 
disableUploadTimeout:上传时是否使用超时机制 
compressableMimeType:哪些资源类型需要压缩 

 

3、禁用 AJP 

Tomcat默认是开启的, 注释掉就行了: 

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


4、JVM优化


 服务器内存如果是 8G 

JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms6144m -Xmx6144m -XX:NewSize=1024m 
-XX:MaxNewSize=2048m -XX:PermSize=512m -XX:MaxPermSize=512m 
-XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"

服务器内存如果是 16G 
 

JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms13312m -Xmx13312m -XX:NewSize=3072m 
-XX:MaxNewSize=4096m -XX:PermSize=512m -XX:MaxPermSize=512m 
-XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC" 


说明:

  • -Dfile.encoding:默认文件编码
  • -server:表示这是应用于服务器的配置,JVM 内部会有特殊处理的 
  • -Xmx1024m:设置 JVM 最大可用内存为 1024MB 
  • -Xms1024m:设置 JVM 最小内存为 1024m。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重 新分配内存。 
  • -XX:NewSize:设置年轻代大小 
  • -XX:MaxNewSize:设置最大的年轻代大小 
  • -XX:PermSize:设置永久代大小 
  • -XX:MaxPermSize:设置最大永久代大小 
  • -XX:NewRatio=4:设置年轻代(包括 Eden 和两个 Survivor 区)与终身代的比值(除去永久代)。设 置为 4,则年轻代与终身代所占比值为 1:4,年轻代占整个堆栈的 1/5 
  • -XX:MaxTenuringThreshold=10:设置垃圾最大年龄,默认为:15。如果设置为 0 的话,则年轻代对象 不经过 Survivor 区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一 个较大值,则年轻代对象会在 Survivor 区进行多次复制,这样可以增加对象再年轻代的存活时间,增加 在年轻代即被回收的概论。 
  • -XX:+DisableExplicitGC:这个将会忽略手动调用 GC 的代码使得 System.gc() 的调用就会变成一个 空调用,完全不会触发任何 GC

 

参考来源:https://blog.csdn.net/Rory898863935/article/details/91970004
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值