优化tomcat启动速度

在tomcat启动的时候,咱们能够作一些优化设置来使得tomcat的启动更快速,下面是一些常见的优化加速启动的方法建议(以tomcat-7.+为例说明)。java

一、  Jars包web

1.一、将一些没必要要的jar包去掉,当tomcat启动加载jar包的时候,会去搜寻每一个jar包里的class文件,这些都会耗费一些时间,若是你把没必要要的jar包去掉了,很显然会节省时间。apache

1.二、你能够将一些与TLD files、注解、网络碎片无关的jar包加入到属性缓存

tomcat.util.scan.DefaultJarScanner.jarsToSkip的值中,这能够在conf/catalina.properties中进行设置。tomcat

二、  缓存网络

你能够在bin/catalina.sh中设置jvm所能使用到的缓存大小,以下:session

JAVA_OPTS=’-Xms1024m -Xmx1024m’app

三、  配置文件dom

Tomcat的配置好比server.xml是xml文件,而xml的解析也是要花时间的,若是咱们能将xml配置文件尽量地弄得简洁一些,好比去掉一些没有用到的节点,这也有助于减小启动的时间,虽然这个节省的时间看来不多。webapp

四、  应用程序

4.一、确保你程序在启动的时候没有一些处理很耗时的地方。

4.二、删除掉tomcat自带的目录webapps及下面的全部内容,否则的话每次启动的时候都会加载这些自带的例子。

4.三、修改WEB-INF/web.xml文件,在默认的状况下<web-app>中的属性metadata-complete的值为false,也就是这样:<web-app metadata-complete=”false” >,这种状况下,tomcat在启动时会去自动扫描是否有注解及网络碎片,若是你不想tomcat这样作,你能够将metadata-complete的值设为true。

五、  并行启动多个应用程序

默认状况下,假设在一个tomcat下你有多个应用,那么启动的时候,这些应用程序都是依次启动的,除非全部应用所有启动完毕,tomcat才会启动完成,但从Tomcat 7.0.23+开始,你能够配置多个应用程序并行启动了!你能够经过修改配置文件中Host里面的startStopThreads这个属性的值来达到这个目的,将多个应用startStopThreads的值设为不一样便可。

六、  Entropy Source

Tomcat 7+严重依赖SecureRandom这个类为它的session id或其它地方取得随机数值,这取决于你的JRE,它有可能在tomcat启动时形成很是大的耗时,好比,在启动tomcat-7的时候,它耗时近130多秒!

INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [138,441] milliseconds.

要解决这个问题,能够经过配置JRE使用非阻塞的Entropy Source,在bin/ catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 便可。

加入后我再启动tomcat,整个启动时间降低

tomcat官方 wiki:http://wiki.apache.org/tomcat/HowTo/FasterStartUp

相关文章
相关标签/搜索