tomcat在linux启动应用慢
young / / / 阅读量

前言

新搭建了一个测试环境,发现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进行补充熵池

支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章