Evaluation Warning: The document was created with Spire.Doc for JAVA.
printf "%x\n" 29616 转为十六进制
jstack <pid> | head -100 获取Java进程中前100行的线程堆栈信息
jstack 27 | grep '73b0' -A 100 > ./cpu-100.txt
jstat -gc <pid> 1000 200
使用的内存S0C+ S1C+ EC+OC
jstat -gcutil <pid> 1000 200
ls -l /proc/27/task | wc -l
jmap -dump:format=b,file=/path/to/dumpfile <pid>
将Dump文件下载回本地,然后可以使用Eclipse的MAT(Memory Analyzer)或者JDK自带的JVisualVM打开日志文件
jmap -histo:live 27 查看堆内存存活的对象。
jmap -heap pid JVM内存的配置
jmap -clstats 7984 查看类加载情况
堆外内存跟踪 NativeMemoryTracking
Native Memory Tracking (NMT) 是Hotspot VM用来分析VM内部内存使用情况的一个功能。我们可以利用jcmd(jdk自带)这个工具来访问NMT的数据。
MT必须先通过VM启动参数中打开,不过要注意的是,打开NMT会带来5%-10%的性能损耗
-XX:NativeMemoryTracking=[off | summary | detail]
off: 默认关闭
summary: 只统计各个分类的内存使用情况.
detail: Collect memory usage by individual call sites.
jcmd pid VM.native_memory detail scale=MB > temp.txt
jcmd 27 VM.native_memory scale=MB