记录一次程序启动慢的原因和解决方案

一、背景

最近有几个项目反映服务启动很慢,访问首页需要10来秒才能打开

二、问题排查

先检查一下内存、磁盘、cpu等是否达到瓶颈。(一般问题不在这里)

2.1 修改random

网上查询大部份都说random的原因, 我们全都照着改了依然很慢.
对于jdk而言,需要的是把配置文件中$JAVA_HOME/jre/lib/security/java.security中的
securerandom.source=file:/dev/random
改为
securerandom.source=file:/dev/urandom

2.2 查看日志

由于项目启动日志很多,一开始并没有仔细看日志 。 后来在启动日志中发现一条可疑日志
InetAddress.getLocalHost().getHostName() took 32048 milliseconds to respond. Please verify your network configuration.(InetAddress.getLocalHost().getHostName()的响应时间为32048毫秒。请验证您的网络配置。)
根本原因就是 InetAddress.getLocalHost 导致很慢的原因.
然后用找个最简单的Springboot项目调用一下这个方法,果然不出所料花了30s的时间.

正常情况下应该1-2ms就可以返回
在这里插入图片描述

找到根本原因一搜就知道,是因为在/etc/hosts 里并没有加入当前主机的名字
在正式环境下加入了主机名后果然快了.(这里在第一次配置的时候居然没效果,过了几天重新查看hostname发现主机名后多了个.local 后缀,重新加上hosts文件成功修复)

大致原因,获取本机地址,走到了DNS解析,DNS递归解析不到本机域名

贴一下修改后的配置
127.0.0.1 myMacBook-Pro.local  localhost
::1  myMacBook-Pro  localhost
192.168.1.19   myMacBook-Pro
总结

通过本次问题排查,我们在遇到问题时还是要仔细看日志问题,很多问题可以通过日志直接定位。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值