JVM(三).虚拟机性能监控&故障处理工具

JVM (三).虚拟机性能监控&故障处理工具

1.概述

系统定位问题,需要工具来导出出现问题的数据;这里的数据有异常堆栈,虚拟机日志,垃圾回收日志,线程快照,堆快照文件;工具就很多就是虚拟机自带工具或者第三方解析工具;

2.基础工具

在目录JAVA_HOME/bin/

在这里插入图片描述

2.1 jps

jps: (JVM Precess Status)虚拟机进程状况工具:列出正在运行的虚拟机进程,并显示主类;

jps 命令格式

jps  [options] [hostid]
Options作用
-q只输出LVMID 省略主类的名称
-m给主类 mian() 方法的参数
-l主类全名,如果是jar包 则是jar包地址
-v启动时 JVM 参数
[root@CentOSA ~]# jps -q
1424
129685
77724
1742
[root@CentOSA ~]# jps -m
1424 QuorumPeerMain /package/zookeeper/bin/../conf/zoo.cfg
129700 Jps -m
77724 KafkaEagle start
1742 Kafka config/server.properties
[root@CentOSA ~]# jps -l
1424 org.apache.zookeeper.server.quorum.QuorumPeerMain
129712 sun.tools.jps.Jps
77724 org.apache.catalina.startup.KafkaEagle
1742 kafka.Kafka
[root@CentOSA ~]# jps -v
1424 QuorumPeerMain -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -Dcom.sun.management.jmxremote -Dcom.sun.management.j
mxremote.local.only=false129725 Jps -Denv.class.path=.:/usr/local/jdk/jdk1.8.0_51//lib/tools.jar:/usr/local/jdk/jdk1.8.0_51//lib/dt.jar: -Dapplication.home=/
usr/local/jdk/jdk1.8.0_51 -Xms8m77724 KafkaEagle -Djava.util.logging.config.file=/package/kafka-eagle/kms/conf/logging.properties -Djava.util.logging.manager=org.ap
ache.juli.ClassLoaderLogManager -Xmx1g -Xms1g -XX:MaxGCPauseMillis=20 -XX:+UseG1GC -XX:MetaspaceSize=128m -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80 -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -Dcatalina.base=/package/kafka-eagle/kms -Dcatalina.home=/package/kafka-eagle/kms -Djava.io.tmpdir=/package/kafka-eagle/kms/temp1742 Kafka -Xmx1G -Xms1G -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent
 -Djava.awt.headless=true -Xloggc:/package/kafka/bin/../logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=7788 -Dkafka.logs.dir=/package/kafka/bin/../logs -Dlog4j.configuration=file:./bin/../config/log4j.properties

2.2 jstat

jstat: JVM Statistics Monitoring Tool :监视虚拟机运行状态信息的命令行工具

jstat 命令格式:

jstat [option vmid [interval[s|ms] [count]]
Options作用
-class虚拟机加载的类信息
-gc堆信息检测 垃圾回收信息
-gcutil-gc 信息差不多 百分比形式
-gccause上次gc 原因
。。。。。。。
[root@CentOSA ~]# jps -l
1424 org.apache.zookeeper.server.quorum.QuorumPeerMain
3512 sun.tools.jps.Jps
77724 org.apache.catalina.startup.KafkaEagle
1742 kafka.Kafka
[root@CentOSA ~]# jstat -gc 1424 100 10  // 1424 pid 100ms 一次 总共10次
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
512.0  512.0  512.0   0.0   15360.0   6986.6   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   6986.6   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   6986.6   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   6986.6   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   6986.6   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   6986.6   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   7055.9   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   7055.9   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   7055.9   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
512.0  512.0  512.0   0.0   15360.0   7074.3   20480.0     5191.8   11008.0 10679.9 1280.0 1198.4     58    2.944   0      0.000    2.944
[root@CentOSA ~]# jstat -gcutil 1424 100 10
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944
100.00   0.00  47.29  25.35  97.02  93.63     58    2.944     0    0.000    2.944

2.3 jinfo

jinfo: Configuration Info for Java :实时查看和调整虚拟机各种参数

jinfo命令格式:

jinfo [option ] pid
[root@CentOSA ~]# jinfo 1424
Attaching to process ID 1424, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.51-b03
Java System Properties:

java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.51-b03
..........
VM Flags:
........

2.4 jmap

jmap : Memery Map for Java :堆内存快照 heapdump /dump

jmap 命令格式:

Options作用
-dump生成堆快照
-finallizerinfoF-Queue 信息
-heapLinux 有效 Java 堆信息
-histo堆里面对象的统计信息 类实例数量,合计容量
-F-dump 没有响应的时候 强制生成
C:\Users\sff>jmap -dump:format=b,file=test.bin 19140
Dumping heap to C:\Users\sff\test.bin ...
Heap dump file created

2.5 jhat

jhat: JVM Heap Analysis Tool :解析堆内存快照 dump 文件

jhat命令格式:

jhat [文件]
C:\Users\sff>jhat test.bin
Reading from test.bin...
Dump file created Sun Jan 23 22:32:09 CST 2022
Snapshot read, resolving...
Resolving 118891 objects...
Chasing references, expect 23 dots.......................
Eliminating duplicate references.......................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
访问地址: http://localhost:7000/

2.6jstack

jstack : Stack Trace for Java :生成当前虚拟机线程快照

jstack 命令格式:

jsatck [option] pid
Options作用
-F输出不响应 强制响应
-l除了堆栈 还有锁信息
-m本地方法的时候 还可以显示C/C++

2.7 其他命令

命令作用
java运行命令 运行Class文件或者jar包
javac编译工具
javap字节码分析工具 反编译

3.可视化故障处理工具

3.1 JConsole

Java Monitoring and Management Console Java监视与管理控制台;基于JMX的可视化工具,通过JMX 管理MBean;

通过pid 或者类名连接上自己想看的服务运行的JVM情况

在这里插入图片描述

主要是:内存监控 虚拟机各个区域的内存使用GC 情况;线程监控这个有点类似于 jstack,下方还有死锁的检测

在这里插入图片描述

3.2 VisualVM

All-in-One Java Troubleshooting Tool是功能最强大的运行监视和故障处理程序之一,很长一段时间内是Oracle官方主力发展的虚拟机故障处理工具

如果电脑配置了环境变量;直接输入jvisualvm 可以直接打开,连接上自己的应用,查看应用运行的JVM 的状态;还具有很多功能丰富的插件;

在这里插入图片描述

3.3 MAT

Eclipse 的 Memory Analyzer Tool (MAT);个人用的还是比较多,一般用户查看内存泄漏的问题;直接加载内存快照,点击内存占用比较多的对象;
下载地址 https://www.eclipse.org/mat/previousReleases.php

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值