tomcat启动一直卡在Root WebApplicationContext: initialization completed

在阿里云上启动tomcat一直卡在Root WebApplicationContext: initialization completed in 2520 ms,每次要等很久才会启动项目 ,等待时间那叫一个长啊

参考了文章:

http://www.bubuko.com/infodetail-2557959.html

https://blog.csdn.net/wwdwjm/article/details/77840113

主要是因为阿里云的熵池太小,熵池的大小是根据键盘、鼠标之类的噪音产生的数,然后/dev/random会根据熵池来生成随机数。而生成需要有足够的熵池里的噪音数,如果没有达到的话就会一直阻塞。

tomcat启动的时候为了生成session id就会获取这个随机数来生成密匙,所以才出现上面的情况,一直阻塞在等待熵池里的数满足生成随机数的大小,熵池里的数够大了才开始部署,所以我们可以使用rngd来增大熵池,因为容器的熵池都是共享宿主机的,所以只要增大宿主机的熵池就可以了,在容器内是没办法通过rngd修改熵池的因为没有权限修改宿主机的东西,只能通过上面链接里提到的修改jre或者tomcat的方法。

我这里用的Centos7操作系统

安装rngd服务(熵服务)

yum install -y rng-tools

启动服务

systemctl start rngd

拷贝

cp /usr/lib/systemd/system/rngd.service /etc/systemd/system

编辑/etc/systemd/system/rngd.service
ExecStart=/sbin/rngd -f -r /dev/urandom

即在ExecStart后面加上-r /dev/urandom

重新载入服务

systemctl daemon-reload

重启服务

systemctl restart rngd

ok,搞定,再重启tomcat就很快了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值