前言

新搭建了一个测试环境,发现tomcat启动特别特别慢,通过网上搜索发现可通过安装rng-tools解决

安装启动

# 安装
yum install rng-tools -y
# 启动
systemctl start rngd 
# 开机启动
systemctl enabled rngd 

其它解决办法

在Tomcat环境中解决

可以通过配置JRE使用非阻塞的Entropy Source。
在catalina.sh中加入这么一行:

-Djava.security.egd=file:/dev/./urandom

加入后再启动Tomcat,整个启动耗时下降到Server startup in 2912 ms。

在JVM环境中解决

打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:

securerandom.source=file:/dev/urandom 

替换成

securerandom.source=file:/dev/./urandom

补充

熵池本质上是若干字节。/proc/sys/kernel/random/entropy_avail中存储了熵池现在的大小,/proc/sys/kernel/random/poolsize是熵池的最大容量,单位都是bit。如果entropy_avail的值小于要产生的随机数bit数,那么/dev/random就会堵塞。
那么,为什么熵池不够用呢?
google了一下资料,熵池实际上是从各种noice source中获取数据,noice source可能是键盘事件、鼠标事件、设备时钟中等。linux内核从2.4升级到2.6时,处于安全性的考虑,废弃了一些source。source减少了,熵池补给的速度当然也变慢,进而不够用。可以通过安装rng-tools进行补充熵池

本博客所有内容采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

转载文章请注明:tomcat在linux启动应用慢 - https://yangxx.net/?p=3756

分类: linux

young

记住该记住的,忘记该忘记的,改变能改变的,接受不能改变的!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

我不是机器人*