Tomcat项目启动缓慢解决

在这个项目中,每次启动非常慢,有时候6分钟,有时候甚至10多分钟才起来

通过查看日志有一句:

19-Oct-2018 09:28:08.920 WARNING [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [175,850] milliseconds.

截图:

Tomcat项目启动缓慢解决

解决方案:

编辑java.security文件

vim ./jdk1.8.0_161/jre/lib/security/java.security

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

Tomcat项目启动缓慢解决

改成这样就可以解决问题。

原因分析:

tomcat的session id 创建是通过:java.security.SecureRandom生成随机数来实现,随机数算法使用的是”SHA1PRNG”

这个系统属性egd表示熵收集守护进程(entropy gathering daemon),但这里值为何要在devrandom之间加一个点呢?是因为一个jdk的bug,在这个bug的连接里有人反馈及时对 securerandom.source 设置为/dev/urandom它也仍然使用的/dev/random,有人提供了变通的解决方法,其中一个变通的做法是对securerandom.source设置为/dev/./urandom才行。也有人评论说这个不是bug,是有意为之。