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

Posted zuri

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS服务器运行Tomcat8启动很慢的原因相关的知识,希望对你有一定的参考价值。

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启动很慢的原因的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7下Tomcat启动慢的原因及解决方案

网页打开很慢的原因是啥?

我centOS上的MySQL速度很慢

电脑变的很慢,想重装系统,可是对电脑完全不懂,麻烦大家详细说一下流程,我是XP,还有电脑变慢的原因是啥呢

我的MacBook air运行速度很慢怎么办

关于idea运行很慢的解决办法