Tomcat调优参数
JVM优化
Tomcat是一个Web容器,所有的jar其实都共享Tomcat中的JVM参数,所以Tomcat的JVM参数优化至关重要。
Tomcat的JVM参数是在启动脚本中设置的,如想要设置最大堆内存和最小堆内存时:
在windows的启动脚本catalina.bat中的set "CURRENT_DIR=%cd%"下面,添加 set JAVA_OPTS=-Xms512m -Xmx512m -XX:ParallelGCThreads=8 -XX:PermSize=128m -XX:MaxPermSize=256m
在linux的启动脚本catalina.sh中的注释后,既,# OS specific support. $var _must_ be set to either true or false.后添加:JAVA_OPTS="-Xms512m -Xmx512m -XX:ParallelGCThreads=8 -XX:PermSize=128m -XX:MaxPermSize=256m"
其它的JVM参数也如上设置,如果服务器只跑Tomcat一个应用,那么建议设置最大堆内存为机器总内存的75%—80%,其它情况根据实际进行设置。
连接器优化
在Tomcat中,连接器是IO事件处理的关键,如果连接器设置好了,则能够处理更多的IO事件,即处理更多的连接。
连接器的优化内容如下:
1.关闭Tomcat中默认的AJP连接器,该协议基本用不到而Tomcat默认开启,将其从配置文件中删掉即可。
2.连接器支持3种运行模式,NIO、BIO、APR,最好设置为NIO模式或者APR模式,如果对并发要求高,最好设置为APR模式,APR模式需要额外的安装类库。
3.可根据实际情况设置连接器的参数,如:maxThreads、compression、processorCache、acceptCount等。
缓存优化
1.对于使用共同jar包的项目,可以在Tomcat中添加到共享类加载器中,节省jvm类加载资源,避免重复加载。
2.启用连接器中的缓冲设置。
其它优化
1.使用Nginx部署静态资源,最好不要把静态资源放在Tomcat中部署,实现动静隔离。
2.有条件可以使用CDN加速静态资源
3.一定要把Tomcat部署在内网环境中,部署Nginx在外层处理连接,让Tomcat只处理内网转发过来的请求,此做法能大大提升性能,因为当网络不好时,会导致很多的超时请求,占用Tomcat的资源,用Nginx把这些有问题的请求拦截在外,节省Tomcat的线程以及IO资源。(如果Tomcat直接对外发布时,处理极限到了,可试试该条优化,极大提升性能)