欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【性能调优】java监控工具

程序员文章站 2022-05-06 14:34:50
...

要想深入了解JVM本身,需要使用java的监控工具。JDK自带以下所列工具。

jcmd
它用来打印java进程所涉及的基本类、线程和VM信息。适用于脚本,可以像这样执行:

% jcmd process_id command optional_arguments

jcmd help 可以列出所有的命令。jcmd help 可以给出特定命令的语法

jconsole
提供JVM活动的图形化试图,包括线程的使用、类的使用和GC活动

jhat
读取内存堆转储,并有助于分析。这是事后使用的工具

jmap
提供堆转储和其他JVM内存使用的信息。可以适用于脚本,但堆转储必须在事后分析工具中使用

jinfo
查看JVM的系统属性,可以动态设置一些系统属性。可适用于脚本

jstack
转储java进程的栈信息。可适用于脚本

jstat
提供GC和类装载活动的信息。可适用于脚本

jvisualvm
监视JVM的GUI工具,可用来剖析运行的应用,分析JVM堆转储(事后活动,虽然jvisualvm也可以实时抓取程序的堆转储)

这些工具可广泛用于以下领域:

  • 基本的VM信息
  • 线程信息
  • 类信息
  • 实时GC分析
  • 堆转储的事后处理
  • JVM的性能分析

基本的VM信息

JVM工具可以提供JVM进程的基本运行信息:它运行多久了,使用哪些JVM标志,以及JVM的系统属性等等

运行时间
此命令可以查看JVM运行的时长:

% jcmd process_id VM.uptime

系统属性
以下命令可以显示System.getProperties() 的各个条目

% jcmd process_id VM.system_properties

或者

% jinfo -sysprops process_id

这包括通过命令行 -D 标志设置的所有属性,应用动态添加的所有属性和JVM的默认属性

JVM版本
用以下方式获取JVM版本:

% jcmd process_id VM.version

JVM命令行
jconsole的“VM摘要” 页可以显示程序所用的命令行,或者用jcmd显示:

% jcmd process_id VM.command_line

JVM调优标志
可用以下方式获得对应用生效的JVM调优标志

 % jcmd process_id VM.flags [-all]