美文网首页
07 | JVM-常用工具

07 | JVM-常用工具

作者: 小亮__ | 来源:发表于2019-06-12 20:08 被阅读0次

    JVM自带的分析工具

    jmap

    • jmap -heap PID 实时的查看堆的使用情况(例如:新生代的大小,老年代的大小)
    • jmap -dump:live,format=b,file=heapt0923.bin pid 导出具体的进程使用情况的文件,然后可以通过MAT工具进行分析

    jstat

    • jstat -gc PID 3000 分析gc的执行状况,3秒钟一次,分析执行GC的测试和频率

    jstack

    经常用于查询CPU负载高的解决办法:(原理:方法是由线程执行的,找到CPU负载高的线程就能定位到有问题的方法,例如死循环方法造成的CPU负载高,就可以通过jstack来排查,)

    用jstack导出线程的dump(这个问题有时没有那么明显,如果不是CPU一直是100%,可能间歇性高的cpu,那么获取到的dump会不会有,有问题的线程不一定)

    • 作用:分析线程执行的情况(查看线程都在干什么)
    • 常用:主要用来定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待。
    • 步骤
      • 先使用top命令查找出占用CPU比较高的进程的PID
      • 使用top -Hp PID 分许,该进程下,那些线程消耗的CPU资源比较多
      • 使用 printf ‘%x\n’ PID将PID转换为16进制的
      • 使用jstack -F 999 > /home/cpu.log 将cpu分析出的信息打印cpu.log中
      • 在分析文件中查找转换成16进制的PID

    iostat

    • 使用iostat -xd 1 查看IO使用率
    • 一般当%util超过5%的时候开始有问题


      image.png

    相关文章

      网友评论

          本文标题:07 | JVM-常用工具

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