JVM性能调优监控工具jps、jstack、jmap、jhat、jstat
jps jps -l 列出所有的java进程 jps -v 列出所有的java进程及参数 找出最耗CPU的堆栈信息 top shift + P 以CPU使用率排序 shift + m 以内存使用率排序 printf "%x" tid 将线程ID转换为16进制 jstack pid | grep tid(16进制) 定位至堆栈 jmap jmap -dump:format=b,file=heap.hprof 13395(PID) 导出内存映像 jmap -heap pid 查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况 jstat jstat -gc pid 250 4 vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时间间隔。count是采样数目。比如下面输出的是GC信息,采样时间间隔为250ms,采样数为4:
参考:
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
追加:
jstack
是一个抓取 thread dump
文件的有效的命令行工具,它位于 JDK 目录里的 bin 文件夹下(JDK_HOME\bin),以下是抓取 dump 文件的命令:
jstack -l <pid> > <file-path>
说明:
pid: Java 应用的进程 id ,也就是需要抓取 dump 文件的应用进程 id。
file-path: 保存 dump 文件的路径。
jstack -l 37320 > /opt/tmp/threadDump.txt
上面的例子演示了用 jstack 生成 dump 文件到 /opt/tmp/threadDump.txt
目录下。
参考: