码迷,mamicode.com
首页 > 其他好文 > 详细

CentOS服务器运行Tomcat8启动很慢的原因

时间:2018-01-06 15:48:42      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:int   http   运行   src   uri   UI   nbsp   方法   导致   

tomcat版本:8.5.20

公司项目服务迁移到另一台服务器,原本正常启动的项目,在另一台服务器(阿里云CentOS7)tomcat启动很慢,通常几百秒启动。查看日志可以发现

技术分享图片

时间花在了生成session ID上。

这是由于Tocmat的Session ID的生成主要通过java.security.SecureRandom生成随机数来实现,随机数算法使用的是SHA1PRNG,由于熵池为空,导致阻塞

网上大部分解决办法是:

通过修改Tomcat启动文件-Djava.security.egd=file:/dev/urandom

通过修改JRE中的java.security文件securerandom.source=file:/dev/urandom

 

还有种解决方法我觉得比较好

参考:https://www.jianshu.com/p/576d356dc163

 

增大/dev/random的熵池。问题的原因是由于熵池不够大,所以增大它是最彻底的方法。通过cat /proc/sys/kernel/random/entropy_avail
我们可以查看现在的熵池大小;我们需要找到一种方式来提高这个值就行了。如果你的CPU带有DRNG特性,可以充分利用硬件来提高熵池产生的速度 。通过cat /proc/cpuinfo | grep rdrand
可以查看自己的CPU是否支持,一般来说Intel的Ivy_Bridge架构的CPU都支持(i3、i5需要注意是否采用该种架构,i7和xeon基本上都支持);AMD的CPU在2015年以后生成的都支持。(如果你是虚拟机需要开启额外的参数)。如果你的硬件不支持,也没有关系,我们可以让/dev/unrandom来做“熵源”。以Centos7为例,
yum install rngd-tools
或者yum install rng-tools
安装rngd服务(熵服务)

systemctl start rngd
启动服务

 

可以将该服务设为开机自动启动,这样不光对tomcat还是其他程序,都能解决问题

 

CentOS服务器运行Tomcat8启动很慢的原因

标签:int   http   运行   src   uri   UI   nbsp   方法   导致   

原文地址:https://www.cnblogs.com/zuri/p/8213893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!