【Linux】云服务器tomact启动巨慢,修改了熵池无效的看这里

背景

       在云服务器上部署tomcat,启动项目时非常非常慢,有十分钟才启动完毕,有三十分钟甚至一小时才完成启动,而在物理机上启动得非常快。

      在论坛上有很多解决方案,基本上都是在修改熵池后解决,然而我根据各种文章得方法尝试一遍,都无法解决,最后在查看tomcat日志时,发现了一种情况,解决后项目启动恢复正常,有尝试修改熵池后无效得伙伴,可以看看是否存在同样问题。

解决方案:

      一、这里先把熵池解决方案放上来

        两种方法的前置条件 ---- 确认熵池大小,确认云服务器是否支持

        查看熵池大小 (3000+ 算正常):

cat /proc/sys/kernel/random/entropy_avail

        查看cpu是否支持:

cat /proc/cpuinfo | grep rdrand

        一般都支持,如果不支持就用/dev/unrandom来做“熵源”。以Centos7为例:

安装熵工具:
yum install rngd-tools
启动
systemctl start rngd
指定路径
cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
编辑
vim  /etc/systemd/system/rngd.service
配置
ExecStart=/sbin/rngd -f -r /dev/urandom
重载
systemctl daemon-reload
重启
systemctl restart rngd
        第一种:通过修改Tomcat启动文件             
   #修改Tomcat启动文件catalina.sh文件中加入 此行代码

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

        第二种:通过修改JRE中的/jre/lib/security/java.security文件
securerandom.source=file:/dev/urandom

      

        二、修改hosts文件(这个就是我用的方法啦)

        在查看tomcat启动日志中,发现在以下方法上会卡住,因此怀疑可能是解析本机host出现了问题

at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)

        通过这行代码是检索/etc/hosts文件,获取当前机器名对应的IP地址,如果没有明确配置机器名和IP的映射关系,就会在这里卡住,其实就是在局域网内去ping了

        然后打开我的/etc/hosts,果然没有配置,赶紧补上,如下

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 host-192-168-126-120
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 host-192-168-126-120

其中,host-192-168-126-120就是手工设置的机器名。

        如果不知道机器名是啥,输入以下命令即可获取

hostname

        补上后,在重启tomcat,发现速度非常奈斯了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值