美文网首页
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