使用 JPS 和 JMAP 排查并下载 Head Dump 文件
发布时间:2024年01月03日
问题描述
在 Linux 系统环境下部署的多个微服务,其中一个模块的微服务会在运行过一段时间后,服务宕机,导致整体服务不可用。排查日志后发现是服务运行过程报 OOM 异常,需进一步排查异常原因。
微服务使用 Springboot 框架开发,数据库使用的是关系型数据库 Mysql,web 应用服务器使用的是 Tomcat。前端及其他中间件模块暂且不表,此篇内容只针对后端服务的问题排查。
排查过程
1.登录服务所在的 Linux 系统,使用 JPS 命令,查看服务进程
2.利用 JMAP 命令列出服务的内存映射
业务系统在开发的过程中,会容易出现对象的引用一直占用,例如死锁,会出现一直占用回收不掉的情况,而且当内存占用的一定程度的情况下,会频繁出现 Full GC 的情况,导致 CPU 占用过高,服务宕机。
解决方法
1.使用 JMAP -DUMP 命令导出离线文件
我们在获取到 Head dump 文件后,可以使用JDK自带的工具进一步分析。
文章来源:https://blog.csdn.net/weixin_37549398/article/details/135334790
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!