阿里云tomcat启动慢问题

为君一笑 提交于 2020-12-12 10:50:37

我在阿里云上安装docker然后在docker容器里启动tomcat一直卡在Root WebApplicationContext: initialization completed in 2520 ms以后要等3分钟才会启动我上传上去的项目 后来看到http://www.jianshu.com/p/576d356dc163这篇文章里找到了原因 主要是因为阿里云的熵池太小 熵池的大小是根据键盘 鼠标之类的噪音产生的数 然后/dev/random会根据熵池来生成随机数 而生成需要有足够的熵池里的噪音数 如果没有达到的话就会一直阻塞 tomcat启动的时候为了生成session id就会获取这个随机数来生成密匙 所以才出现上面的情况 一直阻塞在等待熵池里的数满足生成随机数的大小 3分钟以后熵池里的数够大了才开始部署 所以我们可以使用rngd来增大熵池 因为docker容器的熵池都是共享的宿主机的 所以只要增大宿主机的熵池就可以了 在容器内是没办法通过rngd修改熵池的因为没有权限修改宿主机的东西 只能通过上面链接里提到的修改jre或者tomcat的方法

yum install -y rng-tools
systemctl start rngd
cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
vi /etc/systemd/system/rngd.service

找到ExecStart 在最后加上-r /dev/urandom

ExecStart=/sbin/rngd -f -r /dev/urandom

重新载入服务

systemctl daemon-reload

重启服务

systemctl restart rngd

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!