1.堆(Heap):几乎所有的对象和数组都被分配到了堆内存中,堆内存分为新生代和老年代.
2.java栈:java对和程序数据密切相关,java栈和线程密切相关,java栈是显示私有的一卡空间
1. top -c
2. top -H -p 86184 ,查询该进程下的线程资源
3、使用jstack 86184 > jstack.txt ,输出 该进程下的线程信息,
4、比如,观察到86344这个线程占用cpu 大, 将十进制的86344 转换成16进制 15148
cat jstack.txt | grep -i 15148
先查询 ps -ef|grep java
jstat -gcutil 22193
查看gc情况
jstat -gccause pid 2000 //每两秒执行一下
jstat -gccause 27916 2000
1.利用 CPU占用过高排查: ps -ef |grep java 查看内存分配
2.利用jps查出java进程jps
如何排查oom问题
1.利用gcutil命令查看垃圾回收情况
2.内存分配参数
3.dump日志
4.分析代码是否有滥用内存的情况,比如下载excel