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

一、JDK的命令行工具

1.1 jps 虚拟机进程状况工具

可以列出正在运行的虚拟机进程并显示虚拟机执行主类(main()函数所在的主类)名称以及这些进程的本地虚拟机唯一ID

1.1.1 jps使用

选项作用
-l输出主类的全名,如果进程执行的是jar包,输出jar的路径
-m输出虚拟机进程启动时传递给主类main()函数的参数
-v输出虚拟机进程启动时jvm参数

如:

$ jps -l
4560 sun.tools.jps.Jps
4340
16584 com.example.demo.other.test2
17192 org.jetbrains.jps.cmdline.Launcher

1.2 jstat:虚拟机统计信息监视工具

用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类加载,内存,垃圾收集,JIT编译等运行数据。

1.2.1 参数格式

jstat [ option vmid [interval [s|ms] [count] ] ]

interval和count代表查询间隔和次数
option 主要分为类装载,垃圾收集,运行期编译等状况

1.2.2 jstat工具主要选项

选项作用
-class监视类装载,卸载数量,总空间,以及类装载所耗费的时间
-gc监视java情况,包括Eden区,两个Servivor区,老年代,永久代的容量,已用空间,GC时间合计等细信息
-gcutil监视内容与GC基本相同,单输出主要关注已使用空间占总空间的百分比
-gccause监视内容与-gcutil基本相同,但是会额外输出导致上一次GC的原因
-gcnew监视新生代GC状况

1.2.3 测试

$ jstat -gcnew 17636
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
2560.0 2560.0 2539.6    0.0  7  15 2560.0  31744.0  22835.5      4    0.025

1.3 jinfo

实时的查看和调整虚拟机各项参数

1.3.1 测试

$ jinfo -flag CMSInitiatingOccupancyFraction 18372
-XX:CMSInitiatingOccupancyFraction=-1

1.4 jmap:java内存映像工具

用于生成堆转储快照(一般称为dump文件或者heapdump文件),他还可查询finalize执行队列,java堆和永久代的详细信息。,如空间使用率,当前用的是哪种收集器等。

1.4.1 jmap工具主要选项

-dump生成Java堆转储快照
-heap显示堆详细信息
-finalizerinfo显示在F-Queue中等待Finalizer线程执行finlize方法的对象
-histo显示堆中对象统计信息,包括类数量,实例数量,合计容量

1.4.2 测试

$ jmap -dump:format=b,file=idea.bin 5160
Dumping heap to C:\quickKill\idea.bin ...
Heap dump file created

1.5 jhat:虚拟机堆转储快照分析工具

与jmap搭配使用,来分析jamp生成的堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可在浏览器中查看。

$ jhat idea.bin
Reading from idea.bin...
Dump file created Sat Aug 10 19:14:43 CST 2019
Snapshot read, resolving...
Resolving 25842 objects...
Chasing references, expect 5 dots.....
Eliminating duplicate references.....
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

Server is ready后输入localhost:7000/查看结果

1.6 jstack:java堆栈跟踪工具

  • 用于生成当前虚拟机的线程快照,线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因

1.6.1 jstack工具的主要选项

-F当正常输出的请求不被响应时,强制输出线程堆栈。
-l除堆栈外,显示关于锁的附加信息
-m如果调用到本地方法的话,可以显示c/c++的·堆栈

1.6.2 测试

 jstack -l 14464
2019-08-10 19:51:35
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode):

"A1" #12 prio=5 os_prio=0 tid=0x000000001774c000 nid=0x38f8 waiting on condition [0x000000001845e000]
   java.lang.Thread.State: WAITING (parking)
..........

二、JDK的可视化工具

2.1 JConsole

在这里插入图片描述

2.2 VisualVM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值