虚拟机性能监控与故障处理工具

本文详细介绍了JDK中的命令行工具,如jps、jstat、jmap、jhat等,用于监控和诊断Java应用程序的运行状况。同时,还介绍了JDK的可视化工具JConsole和VisualVM,以及如何使用NMT特性追踪堆外内存中的直接内存。

一、JDK的命令行工具

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

命令格式: jps [options] [hostid]
jps -l  #-q 只输出LVMID -l 输出主类全名

jstat(JVM Statistics Monitoring Tool):虚拟机统计信息监视工具

命令格式: jstat [option] vmid [interval count]
jstat -gc 2764 250 20 # -gc监视java堆状况  每250毫秒查询一次进程2764垃圾收集状态,共查询20次
jstat -gcutil 2754 #监视java堆内存使用状况
 
 

看是什么线程占用了 CPU。

top -p 12309 -H   #-p用于指定进程,-H用于获取每个线程的信息

jinfo(Configuration Info for java):Java配置信息工具

命令格式: jinfo [option] pid

jmap(Memory Map for java):java内存映像工具:

用于生成堆转储快照,即dump文件

命令格式: jmap [option] vmid
jmap -dump:format=b,file=eclipse.bin 3500  #3500是通过jps命令拿到的LVMID

jhat(JVM Heap Analysis Tool):虚拟机dump文件分析工具

jhat eclipse.bin

屏幕显示“server is ready”,用户在浏览器中键入http://localhost:7000/就可以看到分析结果

jstack(Stack Trace for java):java堆栈跟踪工具

用于生成虚拟机当前时刻的线程快照,即threaddump、javacore文件。

线程快照的目的:定位线程长时间停顿的原因 

线程长时间停顿的主要原因:等待外部资源(数据库连接、网络资源、设备资源)、死循环、锁等待(活锁和死锁)

命令格式: jstack [option] vmid
jstack -l 3500  

 

二、JDK的可视化工具

JConsole:Java监视与管理控制台

VisualVM:多合一故障处理工具

 https://www.ibm.com/developerworks/cn/java/j-lo-visualvm/

 

三、堆外内存中的直接内存

使用JDK自带的Native Memory Tracking(NMT特性)

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/wjh123/p/9866936.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值