遇到好幾回了,老是忘記哪一個位置~!!!java
tomcat啓動時查看日誌會卡在一個位置很長時間,以下linux
28-Aug-2018 22:56:55.216 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [165,526] milliseconds.
這種狀況通常是由於sessionid獲取時卡住了,sessionId獲取經過java提供的隨機數產生,隨機數在java.security.SecureRandom裏面,算法使用的是」SHA1PRNG」,在sun/oracle的jdk裏。這個算法的提供者在底層依賴到操做系統提供的隨機數據,在linux上,與之相關的是/dev/random和/dev/urandom。算法
修改辦法:apache
在 $JAVA_HOME/jre/lib/security/java.security 這個文件,找到裏面的 securerandom.source=file:/dev/random 改成:securerandom.source=file:/dev/./urandom 便可。tomcat
具體產生緣由:session
/dev/randomoracle
在讀取時,/dev/random設備會返回小於熵池噪聲總數的隨機字節。/dev/random可生成高隨機性的公鑰或一次性密碼本。若熵池空了,對/dev/random的讀操做將會被阻塞,直到收集到了足夠的環境噪聲爲止。dom
/dev/urandom操作系統
dev/random的一個副本是/dev/urandom (」unlocked」,非阻塞的隨機數發生器),它會重複使用熵池中的數據以產生僞隨機數據。這表示對/dev/urandom的讀取操做不會產生阻塞,但其輸出的熵可能小於/dev/random的。它能夠做爲生成較低強度密碼的僞隨機數生成器,不建議用於生成高強度長期密碼。日誌