目录
1. 环境工具
CentOS7,安装Java
2. jstat查看堆内存整体使用情况
命令:jstat -gcutil $pid 1000
解析:
(1)参数1000表示间隔1秒。
(2)这个命令的功能类似jvisualvm中的visualVM插件的功能.
(3)结果中,S0和S1代表两个Servivor, E代表Eden区,O代表年老区,YGC年轻代的回收等信息
(4)整个堆区划分为新生代和老年代;新生代又被划分成 Eden + From Survivor +To Survivor 三块区域。通常,三者空间大小比例简写为3,表示3:1:1
3. jmap查看堆内存使用详情
命令:jmap -heap ${pid}
4. jmap去dump对象详情
命令:jmap -dump:format=b,file=${fileName}.dump $pid
解析:
(1)通过top命令查进程信息,得到占用内存高的进程的pid。
(2)运行上面命令后,在当前目录下会生成${fileName}.dump文件,比如下方的17128.dump。
(3).dump文件要导出来,放到Windows下,用专门的软件打开(比如MAT),分析问题。