優化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

相關文章
相關標籤/搜索