Java服务部署,卡在连接池上面
问题:SecureRandom instance
原因:
- 简单google了一下,是Java的SecureRandom是同步读的操作系统的/dev/random
(具体的这个配置是在JAVA_HOME/jre/lib/security/java.security这个文件里面的securerandom.source=file:/dev/random 这个配置项)
由于entropy pool(熵池)里面的值不够,所以卡住在读/dev/random上了,造成了启动缓慢
解决方法:
-
根据tomcat官方文档给出的方式(https://wiki.apache.org/tomcat/HowTo/FasterStartUp),在jvm启动的时候加入-Djava.security.egd=file:/dev/./urandom即可
-
或者把JAVA_HOME/jre/lib/security/java.security里面的securerandom.source的值改为file:/dev/./urandom也可以