问题:
Tomcat启动慢,启动日志提示:警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [172,808] milliseconds.
运行环境:
- OS Version: Linux/3.10.0-862.11.6.el7.x86_64
- Server version: Apache Tomcat/9.0.12
- JVM Version: Oracle Corporation/11.0.1+13-LTS
原因:
由于Tomcat的session ID的生成是通过java.security.SecureRandom生成随机数来实现,随机数算法使用的是”SHA1PRNG”。在Sun/Oracle的JDK里,这个算法的提供者在底层依赖到操作系统提供的随机数据,在Linux上,与之相关的是/dev/random和/dev/urandom(非阻塞的随机数发生器,它会重复使用熵池中的数据以产生伪随机数据。)。
请看JDK的 $JAVA_HOME/conf/security/java.security 文件中的相关配置:
#
# Sun Provider SecureRandom seed source.
#
# Select the primary source of seed data f