热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

.startup.sh之后,就访问我的主页xxx.xxx.xxx.xxx:8080,我就看到那个网页那个小圈一直再转啊,再转啊,快的能转五六分钟,慢的能转十几分钟都不能打开。原因:在apache-t

./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,发现启动时间正常。


推荐阅读
author-avatar
hedongsheng
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有