Tomcat优化
tomcat常见的优化方法是对tomcat启动参数优化和对tomcat配置文件(tomcat/conf/server.xml)的优化
1.tomcat启动参数优化
对tomcat启动参数优化也是对JVM内存进行调整配置,主要是对tomcat/bin/catalina脚本文件进行修改,
是通过设置JAVA_OPTS参数来调整,JAVA_OPTS常用设置参数项如下:
-server:一定要作为第一个参数,在多个CPU时性能佳,-server是JVM的服务器模式,tomcat启动时,默认采用的是客户端模式,在生产环境中,tomcat以server模式运行时将拥有更大、更高的并发处理能力,更快更强捷的JVM垃圾回收机制,可以获得更多的负载与吞吐量等各种优势。
-Xms:tomcat 启动时分配的最小内存,默认是物理内存的1/64。
-Xmx:tomcat 运行时可使用的最大内存,建议设为物理内存的一半,不可超过实际物理内存。
(-Xms-Xmx是jvm内存分配值,把Xms与Xmx两个值设成一样是最优的做法;设置值时通过命令校验:java -Xmx2048M -version,在分配2G内存的情况下查询jdk版本,如果能正常显示,则说明jvm能够使用的最大值没有超出物理内存允许的值。(注意:win系统,32位的有限制JVM最大可用为2GB内存,64位系统无限制。))
-XX:PermSize:设定内存永久保存区的初始值,缺省值为64M。
-XX:MaxPermSize:设定内存的永久保存区最大值,缺省值为64M。
-Xmn:young generation(年轻代)的heap大小,一般设置为Xmx的3到4分之一 (Sun官方推荐配置为整个堆的3/8)
更多参数项可参考JAVA_OPTS Java虚拟机参数说明_CSDN博客_java_opts
ps:Linux和Windows系统添加设置JAVA_OPTS参数的位置不一样
Linux下,是修改tomcat/bin/catalina.sh文件,在cygwin=false的上一行添加JAVA_OPTS,如:
Windows下,是修改tomcat/bin/catalina.sh文件,在@echo off下一行追加
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
需要注意的是,在jdk8.0及以上版本,-XX:PermSize和-XX:MaxPermSize似乎已不被支持使用,本次使用的是jdk1.8.0版本、tomcat10版本,设置这两项参数后启动tomcat时有如下提示:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=64m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64m; support was removed in 8.0
2.tomcat配置文件优化(tomcat/conf/server.xml)
主要是在conf/server.xml配置文件中进行对连接数进行修改,在该文件中找到Connector port=“8080” protocol=“HTTP/1.1”这一行,进行修改如下:
<Connector port=“8080” protocol="HTTP/1.1"connectionTimeout=“30000” redirectPort="8443"acceptCount=“500” maxThreads=“400” />
maxThreads:tomcat可用于请求处理的最大线程数,默认是200
minSpareThreads:tomcat初始线程数,即最小空闲线程数
maxSpareThreads:tomcat最大空闲线程数,超过的会被关闭
acceptCount:当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认100