内存溢出排查心得
一 、定位造成内存溢出可能存在的问题
1 io流操作文档没有关闭流
2 往一个静态集合变量里一直压栈
3 连接没释放
4 java队列没消耗
5 Ehcache 缓存使用量过大
6 频繁IO操作大文件
7 Session过期时间太久
。。。。。。
二 、采用Memory Analyzer Tool(MAT)分析Java内存
采用jmap命令(Java Memory Map) 导出内存转储快照(Dump)
首先查询到你对应的 Tomcat的Pid
ps -aux|grep xxx-tomcat
然后执行jmap命令
jmap -dump:forma=b,file=73630.hprof 16706 导出完毕 。down下来用Eclipse 或者MyEclipse(需要安装工具) 查看,然后以openFile 的方式打开
点击Histogram,可以看到内存溢出的详细信息。
网友评论