Tomcat 优化配置

Tomcat内存进行配置优化

注意:这里我优化的是Tomcat9,2GB内存的服务器,如果您的配置不一样可以自定义增加或者减少

打开tomcat中的 catalina.sh 文件
vim /bin/catalina.sh

添加如下配置到第一行
export JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1500m -Xmx1500m -XX:NewSize=128m -XX:MaxNewSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseBiasedLocking -Djava.awt.headless=true"

Tomcat 优化配置_第1张图片

配置说明

配置 说明
-Dfile.encoding=UTF-8 默认文件编码
-server=UTF-8 表示这是应用于服务器的配置,JVM 内部会有特殊优化处理的
-Xms1500m -Xmx1500m 设置JVM最大和最小可用内存为1500MB
-XX:NewSize 设置年轻代大小
-XX:MaxNewSize 设置最大的年轻代大小
-XX:MaxTenuringThreshold 设置垃圾最大年龄,默认为:15。如果设置为 0 的话,则年轻代对象不经过 Survivor 区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在 Survivor 区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。
-XX:NewRatio 设置年轻代(包括 Eden 和两个 Survivor 区)与终身代的比值(除去永久代)。设置为 4,则年轻代与终身代所占比值为 1:4,年轻代占整个堆栈的 1/5
-XX:+DisableExplicitGC 这个将会忽略手动调用 GC 的代码使得 System.gc() 的调用就会变成一个空调用,完全不会触发任何 GC
-XX:+AggressiveOpts 从单词上看是积极,生猛,将最新版的JDK优化后的新特性自动注入
-XX:+UseBiasedLocking 启动一个优化的线程锁,对于高并发访问很重要,太多的请求忙不过来时将会自动进行优化(对于各自长短不一的请求,出现的阻塞、插队现象,自动优化)
-Djava.awt.headless 这个参数都是放在最后的,我们在J2EE工程中使用一些图标工具如:jfreechart,在web网页输出GIF、JPG流在window环境下不会有问题,但在生产环境下可能会出现不显示,此时这个配置可以解决这个参数

Tomcat 并发进行优化配置

打开tomcat中的 server.xml 文件
vim /conf/server.xml

配置如下(使用的是NIO(异步非阻塞))
URIEncoding="utf-8"
maxThreads="2000"
acceptCount="1500"
minProcessors="5"
maxProcessors="2500"
minSpareThreads="20"
maxSpareThreads="100"
useURIValidationHack="false"
connectionTimeout="10000"
enableLookups="false"
disableUploadTimeout="true"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
acceptorThreadCount="2"
redirectPort="8843"/>

Tomcat 优化配置_第2张图片

配置说明

配置 说明
maxThreads 支持并发访问线程 ,默认200
acceptCount 当线程达到了maxThreads后,后续将请求放置到一个等待队列中,这个是这个队列的大小,若这个队列也满了,就直接refuse connection ,默认是100
minProcessors 最小的处理线程数,即使没有任何Http请求,Tomcat也保持至少这么多线程等待处理
maxProcessors 同时最大的线程数处理,如果系统中已经有这个数字的线程,那么,更多的链接请求将进入排队(acceptCount)
minSpareThreads 最小备用线程,初始化默认是10
maxSpareThreads 最大备用线程(一旦超过这个值,Tomcat就会关闭不再需要的socket线程)
useURIValidationHack 减少它对一些url不必要的检查从而减少开销,为提高性能可以设置为false
connectionTimeout 网络链接超时,单位毫秒,设置为-1表示用户超时
enableLookups 禁用DNS查询
disableUploadTimeout 是否需要给tomcat容器设置上传时间限制 true代表不用
compression 设置是否开启Gzip压缩
compressionMinSize 最少压缩
compressableMimeType 压缩的类型
acceptorThreadCount 用于接收连接的线程的数量,默认值是1。一般这个指需要改动的时候是因为该服务器是一个多核CPU,如果是多核 CPU 一般配置为 2.

启动Tomcat

回到bin目录,启动tomcat命令
./startup.sh
查看启动是否成功命令
ps -ef | grep tomcat

Tomcat 优化配置_第3张图片

访问Tomcat
Tomcat 优化配置_第4张图片

此时tomcat已优化成功,经过我的测试,是tomcat没优化之前的十倍性能不止。

你可能感兴趣的:(Tomcat 优化配置)