Centos7+Tomcat8配置javaweb環境,tomcat啓動巨慢的問題

./startup.sh之後,就訪問我的主頁xxx.xxx.xxx.xxx:8080,我就看到那個網頁那個小圈一直再轉啊,再轉啊,快的能轉五六分鐘,慢的能轉十幾分鍾都不能打開。

原因:

在apache-tomcat官方文檔:如何讓tomcat啓動更快裏面提到了一些啓動時的優化項,其中一項是關於隨機數生成時,採用的“熵源”(entropy source)的策略。
他提到tomcat7的session id的生成主要通過java.security.SecureRandom生成隨機數來實現,隨機數算法使用的是”SHA1PRNG”

A.使用僞隨機函數生成器

/dev/unrandom /dev/urandom並不是真正的隨機行爲(其實一般不容易重複),主要有兩個地方可以修改。
通過修改 Tomcat 啓動文件 -Djava.security.egd=file:/dev/urandom
通過修改 JRE 中的 java.security 文件 securerandom.source=file:/dev/urandom

B.增大/dev/random的熵池(推薦) 

問題的原因是由於熵池不夠大,所以增大它是最徹底的方法。我們可以通過軟件的方法實現,下面是軟件的安裝和配置流程。
安裝熵服務
yum install rng-tools
啓動熵服務
systemctl start rngd
如果你的 CPU 不支持 DRNG 特性或者像我一樣使用虛擬機,可以使用/dev/unrandom來模擬。
   cp /usr/lib/systemd/system/rngd.service /etc/systemd/system

   vim /etc/systemd/system/rngd.service

  #以下是編輯內容

  ExecStart=/sbin/rngd -f -r /dev/urandom

重新載入服務
   systemctl daemon-reload

   systemctl restart rngd
經過上面的修改,我們再觀察 cat /proc/sys/kernel/random/entropy_avail 基本上在 3000 左右。這個時候重新啓動 Tomcat,發現啓動時間正常。

原文:https://blog.csdn.net/qq276726581/article/details/53790926

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章