问题描述:
tomcat启动慢大概10分钟左右
日志报警告:
20-Jun-2022 10:31:10.192 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[1,020,265]毫秒。
解决方案:
SHA1PRNG是基于SHA-1算法的伪随机数生成器,用来生成保密性较强的伪随机数。
在SHA1PRNG中,有一个种子产生器,它根据配置执行各种操作。
可以看出是这个SHA1PRNG算法产生的一个SecureRandom安全随机数耗费时间很长
一开始我以为是和linux服务器重启有关
但是后来发现这个问题的出现好像是随机的
或者说是如果生成安全随机数的时间短,那可能就不会报这个警告
把JDK路径//jre/lib/security/java.security 中的
securerandom.source=file:/dev/random
改为
securerandom.source=file:/dev/urandom
解决了这个问题。
具体参考:
java - Slow startup on Tomcat 7.0.57 because of SecureRandom - Stack Overflow
cryptography - Feeding /dev/random entropy pool? - Information Security Stack Exchange