jvm内存占用过高分析

时间:2020-06-24 10:07:48   收藏:0   阅读:423

Java内存模型是描述Java程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节。

在Java虚拟机中,内存分为三个代:新生代(New)、老生代(Old)、永久代(Perm);

【jvm内存占用过高分析】

1.top                >> 观察占用CPU或者MEN(内存)使用情况最高的进程,记录PID;

2.top -p PID     >> 观察该PID对应进程的占用情况,
   shift + h        >> 开启线程显示,观察CPU/Men占用较高的线程有哪些,记录对应TID;

3.jstack PID > jstack.txt   >> 查看该线程的堆栈信息

4.printf "%x\n" TID   >> 将线程对应PID转为 16进制数(TID16);

5.cat jstack.txt | grep TID16    >> 查看当前占用内存高的线程具体在做什么操作,分析原因

6.jmap -histo:live PID   >> 查看当前堆内存中存在哪些存活对象

7. jstat -gcutil PID 1000 3  >> 查看gc情况

原文:https://www.cnblogs.com/wakey/p/13185935.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!