./startup.sh以後,就訪問個人主頁xxx.xxx.xxx.xxx:8080,我就看到那個網頁那個小圈一直再轉啊,再轉啊,快的能轉五六分鐘,慢的能轉十幾分鍾都不能打開。java
緣由:算法
在apache-tomcat官方文檔:如何讓tomcat啓動更快裏面提到了一些啓動時的優化項,其中一項是關於隨機數生成時,採用的「熵源」(entropy source)的策略。
他提到tomcat7的session id的生成主要經過java.security.SecureRandom生成隨機數來實現,隨機數算法使用的是」SHA1PRNG」apache
A.使用僞隨機函數生成器vim
/dev/unrandom /dev/urandom並非真正的隨機行爲(其實通常不容易重複),主要有兩個地方能夠修改。
經過修改 Tomcat 啓動文件 -Djava.security.egd=file:/dev/urandom
經過修改 JRE 中的 java.security 文件 securerandom.source=file:/dev/urandomtomcat
B.增大/dev/random的熵池(推薦) session
問題的緣由是因爲熵池不夠大,因此增大它是最完全的方法。咱們能夠經過軟件的方法實現,下面是軟件的安裝和配置流程。
安裝熵服務
yum install rng-tools
啓動熵服務
systemctl start rngd
若是你的 CPU 不支持 DRNG 特性或者像我同樣使用虛擬機,能夠使用/dev/unrandom來模擬。
cp /usr/lib/systemd/system/rngd.service /etc/systemd/systemdom
vim /etc/systemd/system/rngd.serviceide
#如下是編輯內容函數
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