1、生成堆快照,交予MemoryAnalyzer 等工具直接分析
jcmd PID GC.heap_dump /tmp/heap_$(date +%s).hprof
2、可借助arthas 工具查看目前内存使用情况/或者 dashboard 命令实时监控
memory
3、列出类加载器、类数量、占用空间,方便排查类加载泄漏,排查是栈内还是栈外内存泄露
jcmd <pid> GC.class_stats
4、查看栈外内存使用情况 重点看 Internal(网络缓存区、大头)、Native Memory Tracking(统计内存的工具)、Direct Memory (直接内存)这几个部分
jcmd $(pidof java) VM.native_memory summary scale=MB
前提需要开启NMT
-XX:NativeMemoryTracking=summary
浙公网安备 33010602011771号