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 目录下。

 

参考:

  8个抓取 Java Thread Dumps 的方式

 

posted @ 2018-09-12 17:04  Acumen  阅读(413)  评论(0编辑  收藏  举报