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

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

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

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

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

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

4. 生成dump.hropf   文件

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

5. sz dump.hropf  下载改文件

6. 使用jprofiler 加载dump文件

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

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

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

关闭监控

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

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

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

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

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

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