Tomcat 8启动很慢,在启动中, 发现加载如下类时很慢:
org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom
原因
Tomcat 7/8/9 都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRandom的实例作为会话ID,这个过程比较耗时。
具体原理不再赘述,可百度看看。
解决
有两种解决办法:
1)在Tomcat环境中解决
在catalina.sh中加入这么一行:
-Djava.security.egd=file:/dev/./urandom
2)在JVM环境中解决
打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:
securerandom.source=file:/dev/urandom
替换成
securerandom.source=file:/dev/./urandom