Centos7+Tomcat8配置javaweb环境,tomcat启动巨慢的问题

./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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章