1.如果存在多个war包程序,开启并行加载
在server.xml中 Host部分加入startStopThreads="0"
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" startStopThreads="0">
tomcat 不设置此值的话,默认单线程加载。设置为0,tomcat会获取当前cpu核心数,使用该值作为多线程数,进行并行加载。
实测大大提高部署速度。
2.关闭class校验,加快类加载
catalina.sh CATALINA_OPTS增加 -Xverify:none
实测提高2s的部署速度。
3.随机数熵源优化,
catalina.sh CATALINA_OPTS增加
-Djava.security.egd=file:/dev/./urandom
实测效果不明显,目前此处不存在瓶颈
4,扫描期间跳过不需要的jar
将catalina.properties中此行修改为
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar
如果不适用jsp的话,可以使用此配置,大大加快部署速度。
如果项目中使用的有jsp,也可以先找到不用扫描的包,添加上述命令中。
找到不用扫描的包可以通过调整log级别来操作。
在tomcat/conf/logging.properties加入如下两行:
org.apache.jasper.compiler.TldLocationsCache.level = FINE
org.apache.jasper.servlet.TldScanner.level = FINE
就可以才catalina.out日志中找到不用扫jsp相关的包了。
jvm相关就不赘述了,如果有jvm性能问题,见其他文章。
以上。