Java监控工具简介

JDK自带工具

简介

jcmd: 它用来打印 Java 进程所涉及的基本类、线程和 VM 信息

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

jhat: 读取内存堆转储,并有助于分析

jmap: 提供堆转储和其他JVM内存使用的信息

jinfo: 查看JVM的系统属性,可以动态设置一些系统属性

jstack: 转储Java进程的栈信息

jstat: 提供GC和类装载活动的信息

jvisualvm: 监视JVM和GUI工具,可用来剖析运行的应用,分析JVM堆转储

jcmd可查看参数及含义

命令描述
jcmd process_id VM.uptime查看 JVM 的运行时长
jcmd process_id GC.class_histogram查看JVM的类信息,可以查看每个类的实例数量和占用空间大小
jcmd process_id Thread.print查看JVM的Thread Dump,查看线程运行情况
jcmd process_id GC.heap_dump FILE_NAME 查看JVM的Heap Dump。只指定文件名,默认会生成在启动JVM的目录里
jcmd process_id VM.system_properties查看JVM的系统参数
jcmd process_id VM.flags查看JVM的调优参数
jcmd process_id VM.command_line查看JVM的启动命令行
jcmd process_id GC.run_finalization对 JVM 执行 java.lang.System.runFinalization(),尽量别去调用这个对象的finalize方法。
jcmd process_id GC.run对 JVM 执行 java.lang.System.gc(),告诉垃圾收集器打算进行垃圾收集,而垃圾收集器进不进行收集是不确定的
jcmd process_id PerfCounter.print向正在运行的JVM发送诊断信息请求

应用

基础的VM信息

运行时间

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

jcmd process_id VM.uptime

系统属性

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

jcmd process_id VM.system_properties

或者

jinfo -sysprops process_id

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]

以下是如何获取进程中所有标志的值

jinfo -flag PrintGCDetails process_id

线程信息

jconsole和jvisualvm可以实时显示应用中运行的线程的数量。查看运行线程的栈信息,对于判断线程是否被阻塞很有用

可以通过jstack获取栈信息

jstack process_id

也可以通过jcmd获取栈信息

jcmd process_id Thread.print

类信息

jconsole 或 jstat 可以提供应用已使用类的个数。jstat 还能提供类编译相关的信息。

实时GC分析

jconsole 可以用实时图显示堆的使 用情况。jcmd 可以执行 GC 操作。jmap 可以打印堆的概况、永久代信息或者创建堆转储。 jstat 可以为垃圾收集器正在执行的操作生成许多视图。

事后堆转储

jvisualvm 的 GUI 界面可以捕获堆转储,也可以用命令行 jcmd 或 jmap 生成。堆转储是 堆使用情况的快照,可以用不同的工具进行分析,包括 jvisualvm 和 jhat。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值