1. top 一下发下,一个单一应用系统内存突然飙高(该系统 只每天 凌晨3点 和 19点的时候,会做一次跑批),其他时间段没有任何调度

记一次生产环境,java应用大内存问题的排查过程_重启

2. free -m 查看系统内存剩余不多

记一次生产环境,java应用大内存问题的排查过程_jvm_02

3. 执行 jmap -dump:live,format=b,file=dump.hropf  27782

4. 生成dump.hropf   文件

记一次生产环境,java应用大内存问题的排查过程_时间段_03

5. sz dump.hropf  下载改文件

6. 使用jprofiler 加载dump文件

记一次生产环境,java应用大内存问题的排查过程_数据源_04

观看char[],大部分均是insert 语句 ,猜测应该 druid 数据源,开启了监控功能

记一次生产环境,java应用大内存问题的排查过程_jvm_05

关闭监控

记一次生产环境,java应用大内存问题的排查过程_重启_06

修改完配置后重启下应用 : cat RUNNING_PID |xargs kill -9

记一次生产环境,java应用大内存问题的排查过程_重启_07

记一次生产环境,java应用大内存问题的排查过程_jvm_08

分析堆栈信息可以使用工具​​arthas​​分析亦可:

​https://alibaba.github.io/arthas/​