./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