服务器上Java项目启动异常慢解决方法(亲测有效)
公司项目,因需要迁移到新的一批机器,开发同事反馈,启动Java程序非常慢,已经到了无法忍受的地步,但没有很好的解决方案。刚才我试着搜索了下,找到一篇文章,写得比较有道理,于是发给运维改一下配置。没想到居然正常了,方法记录一下:
# 情境
最近在做项目对接方面的工作,相关的服务器都是对方直接分配的,当我们项目运行的时候,简直是异常的慢,不能忍受的那种
平时我们项目启动要3分钟左右,现在要30分钟,是可忍孰不可忍
# 解决步骤
网上的方案大致为:由于熵池小 或 随机数生成规则造成的 (我这边不是这个原因)
不过这种方案,有成功的,又失败的,我在这里记录下这种解决方案,给需要的人
# 原因
可能由于IPV6解析问题,表现可能为:内网启动慢,外网启动就快
# 解决
第一种方式:
1. 进入服务器安装jdk的路径中,找到jre下的java.security
vim jdk1.8.0_161/jre/lib/security/java.security
2. 修改配置
securerandom.source=file:/dev/./urandom
第二种方式:
通过java启动命令控制:java -Djava.security.egd=file:/dev/./urandom -jar xxx.jar
# 最后 (我是上面这两种方式都不行)
1. 编辑hostname文件 (可选,如:space-analysis)
vi /etc/hostname
2. 修改hosts解析配置
vi /etc/hosts
# 127.0.0.1 poc-hongyi-192.168.0.12
# ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost space-analysis
192.168.0.12 localhost space-analysis
::1 localhost space-analysis
3. 重启生效
reboot
原文链接:https://blog.csdn.net/AinUser/article/details/108447860
转载本站原创文章请注明:文章转自 挨踢路,链接: https://888929.tm7j5.group/articles/2764.html
最近我也遇到了这个问题,改了hosts启动速度就快了很多;
PS:修改完hosts后不用重启服务。
这个我发给运维同事处理,有没重启我也不知道。最后是说正常了
打错了,是不用重启服务器
啊,这个IPv6的问题,基本上国内就连腾讯这种大厂都摔进去过,还摔得很惨。
主因一般就是运营商给的DNSv6解析是有病的,他们会返回一种好像超时,又好像能用的玩意回来,导致操作系统总是在等最终解析结果,一等就是永远。正常来讲DNS不可用就直接超时或者返回错误就拉倒了,但是运营商返回的那玩意基本上就是有病。
反正我Linux这边在sysctl.conf直接把IPv6都禁了,Windows端全都不勾选IPv6。当然假如你的线上业务要支持IPv6的话那只能在这粪坑里泡着。
Linux这边启动的时候特别依赖网络服务检查,默认好像是5分钟(300秒)一个网卡(的配置),所以开机的时候总卡在 Waiting for 啥玩意上,插显示器或者开远程能看到。这个沙雕问题至少有5年了。
我的Linux的host文件自带一组ip6-localhost解析,或许其他发行版没有?
机器是客户的机器,平台用的是某为提供的,据说很垃圾。然后有个系统别名,为方便管理,运维在拿到机器后就把名字都自定义,结果这个自定义名字就没有相应的解析。我也没参与具体的工作,就是同事跟我吐槽说启动非常慢,想着这个原因是有可能,就尝试下。
造成的坑,我猜可能有:1、平台自定义系统名字的坑,不应该自定义名字后解析就没了;2、系统版本的问题,目前我看用的是centos 7.6,具体信息我也没了解。
对,我们也是某为的主机
估计这是个通病
某为,那这就不奇怪了……抄袭大厂,啥玩意拿过去他都说自研的,然后别人家的原生Bug他都有,搞不好系统启动脚本里有一部分甚至是我写的……
直接放弃 java。哈哈哈
你都用上高端技术了
这个是技术活,没有折腾过。
我也不懂折腾,纯属协助解决问题