美文网首页
JVM性能监控与故障处理工具笔记

JVM性能监控与故障处理工具笔记

作者: OisCircle | 来源:发表于2018-10-06 17:01 被阅读0次

jdk自带一些性能监控工具, 放在jdk目录下bin里面. 这里面的工具采用了java代码实现.
tools.jar中的类库不属于Java的标准api.
本文中的命令参数列表详见书本<深入理解Java虚拟机>.
jdk自带的性能监测工具主要分为两大类: 命令行工具可视化工具

命令行工具

jps (JVM Process Status Tool) 虚拟机进程状况工具

显示指定系统内所有的HotSpot虚拟机进程. 此命令用来找出我们运行中的项目的PID, 是此后排错步骤中的首要步骤.

  • 命令格式
    jps [ options ] [ hostid ]
jstat (JVM Statistics Monitoring Tool) 虚拟机统计信息监视工具

用于收集HotSpot虚拟机各方面的运行数据

  • 命令格式
    jstat [ option vmid [ interval [s|ms] [count] ] ]
jinfo (Configuration Info for Java) java配置信息工具

显示虚拟机配置信息

  • 命令格式
    jinfo [ option ] pid
jmap (Memory Map for Java) java内存映像工具

生成虚拟机的内存转储快照(heapdump)文件

  • 命令格式
    jmap [ option ] vmid
jhat (JVM Heap Dump Browser) 虚拟机堆转储快照分析工具

分析heapdump文件, 建立一个HTTP/HTML服务器, 让用户可以再浏览器上查看分析结果. 主要搭配jmap来使用.

  • 命令格式
    jhat heapdump_location
jstack (Stack Trace for Java) java堆栈跟踪根据

显示虚拟机的线程快照, 主要用于定位线程出现长时间停顿的原因.

  • 命令格式
    jstack [ option ] vmid

可视化工具

JConsole( Java Monitoring and Management Console )
  • 内存页相当于可视化的jstat命令
    用于监视Java heap和永久代的变化趋势
  • 线程页相当于可视化的jstack命令
    遇到线程停顿的时候可以使用这个页面进行监控分析
    常见线程停顿原因: 等待外部资源(数据库, 网络资源, 设备资源) , 死循环, 锁等待.
VisualVM( 多合一故障处理工具 )

此款性能监测工具功能非常强大, VisualVM可以做到 :

  • 显示虚拟机进程及进程的配置和环境信息(jps jinfo)
  • 监视应用程序的CPU, GC, 堆, 方法区及线程的信息(jstat jstack)
  • dump及分析堆转储快照(jmap jhat)
  • 方法级的程序运行性能分析, 找出被调用最多, 运行时间最长的方法.
  • 离线程序快照 : 收集程序的运行时配置, 线程dump, 内存dump 等信息建立一个快照, 将快照发送给开发者处进行Bug反馈.
  • 其它plugins的无限可能性...

相关文章

网友评论

      本文标题:JVM性能监控与故障处理工具笔记

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