专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

BCLinux 上启动微服务慢的问题定位及解决

ins518 2024-09-16 21:32:52 技术文章 42 ℃ 0 评论

现象:

SpringCloud 微服务于全新的虚拟机之上予以部署,以前几秒就启动好了,然而在新服务器上启动之际,起初并无日志打印呈现,需历经 1 至 2 分钟,方可有启动日志的打印输出。

定位:

借助 jstack 工具,抓取启动时的现场池,察知存在如下线程处于长时间的运行状态。

发现如下异常代码:java.net.Inet4AddressImpl.getLocalHostName

解决:

1、 以 root 账号,进行“more /etc/hostname”的查看操作;

2、修改/etc/hosts 文件,将上一步主机名,添加到该文件中:

3、重启微服务,问题解决。

总结:

走了很大一段弯路,其实对于这种程序卡死的现象,最佳解决方案就是分析tomcat堆栈,通过线程的信息来找解决办法,其它办法相对来说花费的时间很多,也可能找不到问题原因。

另外,这个现象并不是在所有机器上都存在,在有些机器上,即使没有在hosts文件中配置自定义hostname的映射,程序也会正常运行,可能是jdk内部还依赖别的环境配置,暂时还没有定位到原因。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表