【OOM】解决思路
一、什么是oom?
oom就是outofmemory,内存溢出!可能是每一个java人员都能遇到的问题!原因是堆中有太多的存活对象(gc-root可达),占满了堆空间。
二、怎么解决?
1、拿到内存溢出时的heapdump.hprof文件。
1.1: 可在程序启动时增加启动参数: -xx:+heapdumponoutofmemoryerror xx:heapdumppath=/test/test/test.hprof
1.2: 如果没有加这个参数,可以通过命令输出这个文件:
1.2.1:jps命令查到当前java服务的pid
1.2.2:jmap -dump:live,format=b,file=/test/test/test.hprof pid
1.3:去/test/test/文件夹下拿到test.hprof文件!
注意:运行环境要安装完整的jdk.(有的机器上可能只安装了jre,那么jps、jmap这些命令就没法使用了);/test/test/这个文件夹要提前创建,不然不会输出hprof文件。
2、分析heapdump.hprof文件。
分析heapdump.hprof文件,我只推荐eclipse出的 memoryanalyzer 工具
。。。。。有事情,下次再补充
上一篇: 2.原生js实现图片懒加载
下一篇: python实现数据库跨服务器迁移