完美解决Tomcat启动慢的三种方法

目录

方法一:修改随机数生成器。

方法二:修改catalina.sh 脚本文件。

方法三: 安装rngd服务(熵服务),增大熵值。


在我们启动Tomcat时,有时候启动时间过长,原因是:

Tomcat的Session ID是通过SHA1算法计算得到的,计算时必须有一个密钥。为了提高安全性,Tomcat在启动时候会随机生成一个密钥,在生成随机数的时候卡住了,导致Tomcat启动失败。

首先我们通过如下命令查看是否有足够的来生成随机数。

cat /proc/sys/kernel/random/entropy_avail

【熵[shāng]Linux内核采用熵来描述数据的随机性,熵值越大,数据的随机性越好!】

为了加速/dev/random提供随机数的速度,你可以通过操作设备的外设,让其产生大量的中断(网络传输数据、按键、移动鼠标等)在命令行敲几个不同的命令,俗称聚气。

Linux下面两个特殊的设备文件,一个是/dev/random,另一个是/dev/urandom,都是用于生成随机数的。/dev/random生成随机数与当前使用的计算机硬件状态相关,非常适合随机数质量要求很高的场景,/dev/urandom为无限/非阻塞的随机数生成器,与计算机硬件状态无关。

我们可以使用下面三种方法解决:

方法一:修改随机数生成器。

vi $JAVA_HOME/jre/lib/security/java.security

securerandom.source=file:/dev/random修改为securerandom.source=file:/dev/urandom。 

 

修改完毕后,保存退出并重新启动Tomcat即可。

方法二:修改catalina.sh 脚本文件。

一般情况下,catalina.sh文件位于Tomcat的bin目录下。

以我的为例,我的是:

vi /application/tomcat/bin/catalina.sh

添加如下内容:

if [[ "$JAVA_OPTS" != *-Djava.security.egd=* ]]; then
   JAVA_OPTS="JAVA_OPTS -Djava.security.egd=file:/dev/urandom"
fi

添加完毕后,保存退出并重新启动Tomcat即可。

【系统属性egd表示熵收集守护进程(entropy gathering daemon)】

方法三: 安装rngd服务(熵服务),增大熵值。

rngd 服务, rng-tools 软件包的一部分,能够使用环境噪声和硬件随机数生成器来生成

yum -y install rng-tools

启动服务并设置开机自启

systemctl start rngd
systemctl enable rngd

查看是否安装成功

ps -ef | grep rngd

猜你喜欢

转载自blog.csdn.net/m0_64304713/article/details/134619946