使用 JPS 和 JMAP 排查并下载 Head Dump 文件

2024-01-03 17:33:05

问题描述

在 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。