撸主服务器配置:
Ubuntu 16.04
Tomcat 7.0.75
JDK 1.7.0_71
最近在搞Linux服务器,配置完WEB环境之后,启动tomcat发现异常的慢(90万ms,吓得我直接瘫在了地上)。
INFO: Server startup in 908964 ms
分析了一下tomcat启动日志发现问题:
这里可以看到耗时已经在90万毫秒了,项目启动才耗时10秒左右。
原因:Tomcat 7及以上版本都使用createSecureRandom类产生安全随机类SecureRandom的实例作为会话ID。
解决方案:
1、在tomcat中进行配置
可以通过配置JRE使用非阻塞Entropy Source,在catalina.sh中加入代码:-Djava.security.egd=file:/dev/./urandom
PS:撸主是在JVM里面配置的,这里就注掉了。然后重启tomcat。
2、在JVM中进行配置
找到$JAVA_HOME/jre/lib/security/java.security文件
把securerandom.source=file:/dev/urandom替换成securerandom.source=file:/dev/./urandom
重启tomcat。