新部署的Centos的tomcat启动慢的问题
1.原因
在apache-tomcat官方文档:如何让tomcat启动更快里面提到了一些启动时的优化项,其中一项是关于随机数生成时,采用的“熵源”(entropy source)的策略。而熵不足时会导致tomcat启动时间慢的问题。
2.相关概念
在linux上,与之相关的是/dev/random
和/dev/urandom
。
/dev/random - 阻塞的随机数发生器
设备会返回小于熵池噪声总数的随机字节。/dev/random可生成高随机性的公钥或一次性密码本。若熵池空了,对/dev/random的读操作将会被阻塞,直到收集到了足够的环境噪声为止。
/dev/urandom - 阻塞的随机数发生器
它会重复使用熵池中的数据以产生伪随机数据。这表示对/dev/urandom的读取操作不会产生阻塞,但其输出的熵可能小于/dev/random的。它可以作为生成较低强度密码的伪随机数生成器,不建议用于生成高强度长期密码。
3.解决方案
下列方案2选1即可
①可以配置tomcat的JVM启动参数
-Djava.security.egd=file:/dev/./urandom
②更改jdk配置,修改java.security文件
securerandom.source=file:/dev/random
更改为
securerandom.source=file:/dev/./urandom
参考文档