./startup.sh之后,就访问我的主页xxx.xxx.xxx.xxx:8080,我就看到那个网页那个小圈一直再转啊,再转啊,快的能转五六分钟,慢的能转十几分钟都不能打开。
原因:
在apache-tomcat官方文档:如何让tomcat启动更快里面提到了一些启动时的优化项,其中一项是关于随机数生成时,采用的“熵源”(entropy source)的策略。 他提到tomcat7的session id的生成主要通过java.security.SecureRandom生成随机数来实现,随机数算法使用的是”SHA1PRNG”
A.使用伪随机函数生成器
/dev/unrandom /dev/urandom并不是真正的随机行为(其实一般不容易重复),主要有两个地方可以修改。 通过修改 Tomcat 启动文件 -Djava.security.egd=file:/dev/urandom 通过修改 JRE 中的 java.security 文件 securerandom.source=file:/dev/urandom
B.增大/dev/random的熵池(推荐)
问题的原因是由于熵池不够大,所以增大它是最彻底的方法。我们可以通过软件的方法实现,下面是软件的安装和配置流程。 安装熵服务 yum install rng-tools 启动熵服务 systemctl start rngd 如果你的 CPU 不支持 DRNG 特性或者像我一样使用虚拟机,可以使用/dev/unrandom来模拟。 cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
vim /etc/systemd/system/rngd.service
#以下是编辑内容
ExecStart=/sbin/rngd -f -r /dev/urandom
重新载入服务 systemctl daemon-reload
systemctl restart rngd 经过上面的修改,我们再观察 cat /proc/sys/kernel/random/entropy_avail 基本上在 3000 左右。这个时候重新启动 Tomcat,发现启动时间正常。
原文:https://blog.csdn.net/qq276726581/article/details/53790926