美文网首页
JVM 监控工具学习笔记

JVM 监控工具学习笔记

作者: dp_ookkakjs | 来源:发表于2018-08-20 11:29 被阅读0次

    JPS 可以输出JVM中运行的进程状态信息
    jps [命令行参数] [服务器]
    服务器如果不指定的话就是默认当前服务器,命令行参数有下面几种选项:
    [-q] 不输出类名、jar名和传入Main方法的参数
    [-m] 输出传入main或者jar方法的参数
    [-l] 输出main类或者jar的全限名
    [-v] 输出传入jvm的参数


    JPS -v

    JSTACK 可以用来查看某个java进程内的线程堆栈信息,命令行参数有下面几种选项:
    jstack [命令行参数] [PID]
    jstack [命令行参数] executable core
    jstack [命令行参数] [server-id@]remote-hostname-or-ip
    [-l] 在发生死锁时,可以通过jstack -l pid来观察锁的持有情况。
    [-m] 不仅输出java堆栈信息,还可以输出C/C++堆栈信息
    示例根据找出一个某个java进程中最耗费CPU的线程,并定位到堆栈信息。

    1. 第一步找出JAVA进程,可以使用上面JPS命令或者“ps -ef | grep [系统名] ” 找到进程PID


      image.png
    2. 然后,使用“top -Hp PID” 命令找出当前进程中最耗资源的线程,可以根据图中“TIME”列和“CPU”列判断。


      image.png
    3. 打印该线程的十六进制值,使用命令“printf "%x\n" 1101”


      image.png

      4.使用JSTACK命令输出当前堆栈信息,“jstack 1100 | grep 44d”,可以看到CPU资源消耗在main入口方法


      image.png
      JSTAT JVM统计监测工具,命令行参数有下面几种选项:
      jstat [ generalOption | outputOptions ]

      使用命令“ jstat -gc 1100 250 4”可以输出GC的相关信息。图中参数1100代表当前PID,250表示采样时间为250ms,4代表采样数为4. 图中各个指标的含义分别是:
      S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和已使用量(Used)
      EC、EU:Eden区容量和使 量
      OC、OU:年 代容量和使 量
      PC、PU:永久代容量和使 量
      YGC、YGT:年轻代GC次数和GC耗时
      FGC、FGCT:Full GC次数和Full GC耗时
      GCT:GC总耗时


      jstat -gc 1100 250 4
      还有几个工具暂时未上手使用,未完待续~

    相关文章

      网友评论

          本文标题:JVM 监控工具学习笔记

          本文链接:https://www.haomeiwen.com/subject/wiqtiftx.html