一.Linux主机排查命令:
1.导出线程dump
jstack PID >> thread.dump
2.导出heap dump
(1)可以在应用启动的时候添加参数
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=./heap.hprof
此方法会在OOM时抓拍heap.hprof保存到 ./目录
(2)通过jmap命令导出heap dump文件
jmap -dump:live,format=b,file=heap.hprof PID
3.查看进程
jps 或者ps -ef|grep 应用名
4.查看进程有多少线程数
pstree -p PID |wc -l
5.查看进程中占用内存最多的线程
top -H -p PID
可以结合线程dump文件查看相关代码排查问题
6.查看linux主机的进程数最大值
ulimit -u
7.查看java应用gc回收情况
每隔3秒查询一下PID进程的gc回收情况,主要看看是否频繁fgc,如果频繁fgc,说明程序有问题,代码有大对象产生或频繁的new 对象,fgc就是java中的stop the world,影响响应性能的
jstat -gc PID 3000