在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