1、查看占用内存大的进程(pid):
top
2、根据pid查看详细线程占用资源情况:
ps p pid -L -o pcpu,pmem,pid,tid,time,tname,cmd
3、通过jstack查看内存使用的堆栈,并将id转换为16进制:
printf "%x\n" Tid
6077
4、jstack 24071 >test.txt
5、打开test.txt查找6077所在的代码位置进行排查
内存溢出的解决方案:
第一步,修改JVM启动参数,直接增加内存。(-Xms,-Xmx参数一定不要忘记加。
第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。
第三步,对代码进行走查和分析,找出可能发生内存溢出的位置。