步骤如下
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 >> 查看当前堆内存中存在哪些存活对象
- jstat -gcutil PID 1000 3 >> 查看gc情况