JAVA 问题记录
OOM(内存溢出)
先查看java 进程pid
jps
使用jmp 把内存导出 查看那些对象内存占用比较高
jmp -histo <pid> >/histo.txt
在可以看堆内存使用情况
jmp -heap <pid> >/heap.txt
定位Java应用CPU负载过高问题
通常, 我们会采用top -Hp + jstack 命令组合定位问题. 基本步骤如下:
- top -Hp <pid> 列出java进程内的线程。
- 找出cpu使用率高的线程Id, 并转换成十六进制, printf "%x" <thread id>
- jstack <pid> 打印线程栈,并找出nid与步骤2打印的id相同的线程
- 查看线程栈,定位到执行的代码