记:项目构建时间优化

当前项目一直使用jenkins进行构建发布,发现正常情况下构建时间基本上都维持在1min~2min之间;但是系统启动相对来说却有点慢的多了,经过多次启动日志查看排查发现耗时最长的时间是:

05-Mar-2021 17:16:21.919 WARNING [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [31,760] milliseconds.

在网上查找资料后确定,发现由于tomcat的session id的生成主要通过java.security.SecureRandom生成随机数来实现,随机数算法使用的是”SHA1PRNG”。在sun/oracle的jdk里,这个算法的提供者在底层依赖到操作系统提供的随机数据,在linux上,与之相关的是/dev/random和/dev/urandom。

解决方法

尝试网上提供的方法,修改jdk的配置$JAVA_HOME/jre/lib/security/java.security文件将securerandom.source=file:/dev/random修改如下

securerandom.source=file:/dev/random
修改为:
securerandom.source=file:/dev/./urandom

之后保存重启项目,再次查看启动日志,发现现在启动时间已经比较快了~

image-20210305093353533

这样一轮操作下来,tomcat构建耗时的问题终于解决了img

参考

1.tomcat sessionid生成导致启动缓慢

2.Tomcat启动Creation of SecureRandom instance卡住解决

原文地址:https://www.cnblogs.com/LOVEYU/p/14484477.html