CentOS7.4 系統下 Tomcat 啓動慢解決方法

CentOS7.4 系統下 Tomcat 啓動慢解決的方法
 

首先查看日誌信息,查看由於什麼而啓動慢java

  在CentOS7啓動Tomcat時,啓動過程很慢,須要幾分鐘,通過查看日誌,發現耗時在這裏:是session引發的隨機數問題致使的。Tocmat的Session ID是經過SHA1算法計算獲得的,計算Session ID的時候必須有一個密鑰。爲了提升安全性Tomcat在啓動的時候會經過隨機生成一個密鑰。web

 

22-Apr-2017 19:33:07.623 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of 算法

 SecureRandom instance for session ID generation using [SHA1PRNG] took [55,507] milliseconds. apache

22-Apr-2017 19:33:07.653 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web appli vim

cation directory /application/apache-tomcat-8.0.27/webapps/ROOT has finished in 55,935 mstomcat

 

從日誌中得出:主要緣由是生成隨機數的時候卡住了,致使tomcat啓動不了。安全

爲了加速/dev/random提供隨機數的速度,能夠經過操做設備的外設,讓其產生大量的中斷(如網絡傳輸數據,按鍵,移動鼠標,在命令行敲幾個不一樣的命令,)網絡

cat /dev/random 會消耗能量session

 

方法1:app

vim $JAVA_HOME/jre/lib/security/java.security
securerandom.source=file:/dev/random
改成
securerandom.source= file:/dev/urandom
 
 
方法2:
vim $TOMCAT_HOME/bin/catalina.sh
if [[ "$JAVA_OPTS" != *-Djava.security.egd=* ]]; then
    JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"
fi
這個系統屬性egd表示熵收集守護進程(entropy gathering daemon)
 
方法3:安裝rng(推薦)
yum install rng-tools # 安裝rngd服務(熵服務,增大熵池)
systemctl start rngd # 啓動服務
systemctl enabled rngd # 啓動服務
 
 
測試環境:
jdk1.7.0_79
Tomcat 7.0.68
 
原系統 CentOS 7.2 升級到 CentOS 7.4 後,會自動修改java參數,同方法1
securerandom.source=file:/dev/urandom
可是2個Tomcat實例,其中Tomcat1發生了異常。後臺訪問都正常,app端訪問無請求信息。
最後 使用方法3 ,重啓Tomcat 2個實例,異常問題解決。
 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

相關文章
相關標籤/搜索