1. 程式人生 > >分析tomcat啟動巨慢問題

分析tomcat啟動巨慢問題

   

       其實tomcat啟動慢這個問題應該說很常見,像載入一些比較重的spring配置檔案時註定啟動時間不會很快,一半從幾秒到幾十秒大家忍一忍也就過去了,可是最近做開發時發現自己部署在阿里雲上的tomcat啟動時間居然長達500000+ms,這怎麼忍,於是下定決心查資料把這個坑填上。

     重所周知在web開發中tomcat會管理大量的回話session,而Tocmat的sessionID是通過SHA1演算法計算得到的,計算sessionID的時候必須有一個祕鑰,為了提高安全性tomcat在啟動的時候通過隨機數生成這個祕鑰,歸根到底,這個玩意兒就是導致tomcat啟動慢的真正元凶。通過查資料在我理解看來,在Linux環境下這個祕鑰的生成依賴於linux下的一個隨機函式生成器,而這個生成器會根據 噪音 產品隨機數,如果噪音不夠就會被阻塞。(注:linux是通過I/O,鍵盤終端、記憶體使用量、CPU利用率等方式來收集噪音 )

    解決辦法 - 提高隨即函式生成器的熵池

    1.  檢視熵池大小 cat /proc/sys/kernel/random/entropy_avail

    2.  yum安裝熵服務 yum install rngd-tools

    3. 開啟服務 systemctl start rngd

    總結: