Tomcat9 启动时创建 SecureRandom 实例使用了过长的时间

本文介绍了Tomcat9在启动时由于SecureRandom实例创建使用SHA1PRNG算法导致的长时间延迟问题,分析了原因并提出了三种解决方案:在Tomcat环境中、运行可执行Jar时和在JVM环境中分别进行配置优化,以减少启动时间并避免警告。
摘要由CSDN通过智能技术生成

问题:

Tomcat启动慢,启动日志提示:警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [172,808] milliseconds.

运行环境:

  • OS Version:             Linux/3.10.0-862.11.6.el7.x86_64 
  • Server version:        Apache Tomcat/9.0.12     
  • JVM Version:           Oracle Corporation/11.0.1+13-LTS         

原因:

由于Tomcat的session ID的生成是通过java.security.SecureRandom生成随机数来实现,随机数算法使用的是”SHA1PRNG”。在Sun/Oracle的JDK里,这个算法的提供者在底层依赖到操作系统提供的随机数据,在Linux上,与之相关的是/dev/random和/dev/urandom(非阻塞的随机数发生器,它会重复使用熵池中的数据以产生伪随机数据。)。

请看JDK的 $JAVA_HOME/conf/security/java.security 文件中的相关配置:

#
# Sun Provider SecureRandom seed source.
#
# Select the primary source of seed data f
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值