记一次 tomcat 启动过慢数据库连接不上 BUG

tech2026-09-25  0

INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [162,420] milliseconds. 这个是导致tomcat启动卡在 Root WebApplicationContext: initialization completed in 3970 ms 这里很长时间的原因

据说也是导致数据库功能使用异常的原因

参考 https://www.cnblogs.com/yaomaomao/p/10954468.html

由于linux系统熵池过低 造成jvm 调用时出现阻塞 cat /proc/sys/kernel/random/entropy_avail cat /proc/sys/kernel/random/poolsize 正常机器 不正常

解决办法:

1)在Tomcat环境中解决

可以通过配置JRE使用非阻塞的Entropy Source。

在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。

加入后再启动Tomcat,整个启动耗时下降到Server startup in 2912 ms。

2)在JVM环境中解决

打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:

securerandom.source=file:/dev/urandom 替换成

securerandom.source=file:/dev/./urandom

3)增加熵池

yum install rng-tools -y 启动rngd服务 service rngd start
最新回复(0)