Tomcat服务启动非常缓慢,查看Tomcat服务日志,日志信息类似如下。
org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [406,732] milliseconds.
系统显示类似如下。
SecureRandom这个JRE的工具类存在问题。SecureRandom generateSeed慢是因为Tomcat7、Tomcat8服务都是使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom
类产生安全随机类SecureRandom的实例作为会话ID。
本文提供以下两种解决方案。
-Djava.security.egd=file:/dev/./urandom
添加内容完成后重启Tomcat服务,查看Tomcat服务启动日志,确认启动耗时下降。
$JAVA_PATH/jre/lib/security/java.security
文件。securerandom.source=file:/dev/urandom
将内容替换为如下内容。
securerandom.source=file:/dev/./urandom