1、保存线程栈:jstack -l pid > jstack.log2、保存heap:jmap -dump:format=b,file=heap.hprof pid3、使用mat分析heap,看是否有内存泄露4、分析gc log(如果之前没有开启gc log,要开启,然后复现,再拿gc log来查看),看是否是gc参数配置的不恰当 附开启gclog的参数 java8及之前的版本 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -Xloggc:/some-path/gc-$(date +%Y%m%d-%H%M%S).log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M java9及以上版本 -Xlog:gc*=info:file=/some-path/gc-%t-%p.log:timemillis,pid:filecount=5,filesize=10M
1、保存线程栈:jstack -l pid > jstack.log
2、保存heap:jmap -dump:format=b,file=heap.hprof pid
3、使用mat分析heap,看是否有内存泄露
4、分析gc log(如果之前没有开启gc log,要开启,然后复现,再拿gc log来查看),看是否是gc参数配置的不恰当
附开启gclog的参数