avatar1 avatar
@{[{user.name}]}
希腊·圣域
since February 1500

之前有一次启动tocmat之后无法访问页面,并且也没有任何错误信息输出,但奇怪的发现有些启动日志并没打印完全,后来等了5分钟左右的时候日志就全部打印完了,tomcat也变得可以访问了,但是足足等了5分钟。

出现这个问题的原因是Tomcat 版本非常依赖于SecureRandom这个类去生成随机的串用作seesion ids等等,而SecureRandom依赖于熵(entropy)的输入。

熵(entropy)是描述系统混乱无序程度的物理量

如果系统熵过低,tomcat启动过程中(加密程序)就会等待系统产生足够的熵才进行一下一步启动从而导致启动过程变慢。

所以解决方案就是指定一个非空的熵(entropy)给SeureRandom。

方案1:

-Djava.security.egd=file:/dev/./urandom

方案2 (推荐):

apt-get install haveged  

Haveged 的目的是提供一个简单易用的不可预测随机数生成器,基于 HAVEGE 算法。Haveged 可以解决在某些情况下,系统熵过低的问题。

使用下面命令查看当前系统收集到的熵,如果低于1000那么说明系统的熵比较底,那么最好能够安装haveged

cat /proc/sys/kernel/random/entropy_avail

当前第 1页,一共 1页