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 10S0     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 生成堆快照
-finallizerinfo F-Queue 信息
-heap Linux 有效 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

JVM(三).虚拟机性能监控故障处理工具相关推荐

  1. 《深入理解Java虚拟机第3版》垃圾收集器与内存分配策略、虚拟机性能监控故障处理工具

    目录 往期博客:Java课堂篇3_初识JMM.常量池简单理解(字符串常量池.静态常量池.大整型常量池) 为什么要了解垃圾收集和内存分配? 如何判断对象已死? 引用计数算法 可达性分析算法 JDK1.2 ...

  2. jvm(4)-虚拟机性能监控与故障处理工具

    [0]README 0.1)本文文字描述转自 "深入理解jvm",旨在了解 虚拟机性能监控与故障处理工具的基础知识(仅仅在于了解): [1]概述 1)给一个系统定位问题的时候,知识 ...

  3. JVM-11虚拟机性能监控与故障处理工具之【JDK的可视化工具-JConsole】

    文章目录 思维导图 概述 JConsole: Java监视与管理平台 启动jconsole 内存监控示例 VM ARGS 代码 JConsole监控展示及说明 扩展问题 没有指定-Xmn,如何确定新生 ...

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

    虚拟机性能监控与故障处理工具 一.jps:虚拟机进程状况工具 常用指令 二.jstat:虚拟机统计信息监视工具 常用指令 三.jinfo:配置信息工具 四.jmap:Java内存映像工具 常用指令 五 ...

  5. JVM-10虚拟机性能监控与故障处理工具之【JDK的命令行】

    文章目录 思维导图 概述 命令行工具 jps 虚拟机进程状况工具 概述 语法及使用 jstat 虚拟机统计信息监视工具 概述 语法及使用 jinfo Java配置信息工具 概述 语法及使用 jmap ...

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

    虚拟机性能监控与故障处理工具 概述 给一个系统定位问题时,知识.经验是关键基础,数据是依据,工具是运用知识处理数据的手段.这里的数据包括:运行日志.异常堆栈.GC日志.线程快照.堆转储快照等.使用适当 ...

  7. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  8. JVM2-性能监控故障处理工具

    给一个系统定位问题的时候,知识.经验是关键的基础,数据是依据,工具是运用知识处理数据的手段.这里的数据包括但是不限于异常堆栈.虚拟机运行日志.垃圾收集器.线程快照.堆转存储快照等. 四.虚拟机性能监控 ...

  9. JVM(四)_性能监控与调优

    不定期补充.修正.更新:欢迎大家讨论和指正 本文主要根据尚硅谷的视频学习,建议移步观看,其他参考资料会在使用时贴出链接 尚硅谷宋红康JVM全套教程(详解java虚拟机) 由于JVM的知识是互相穿插的, ...

最新文章

  1. java 多项式拟合最多的项数_牛顿插值法、曲线拟合、多项式拟合
  2. 数据结构特性解析 (二) ArrayList
  3. OpenCV像素二位数组数据(矩阵)生成图片
  4. HDU1877 又一版 A+B【进制】
  5. java中==与equals的区别及理解_Java开发中常量池的理解与归纳
  6. validated 验证数组_SpringBoot整合表单验证注解@Validated,以及分组验证
  7. 中端存储如何摆脱“创新的窘境”
  8. html设置字体样式罗马,罗马字体英文
  9. BugKu (杂项篇MISC)—隐写
  10. vsftp创建虚拟账户
  11. maya检查模型重合点脚本
  12. 揽月摘星 | 第 13 届金鼠标数字营销大赛得奖名单出炉,知家斩获 5 项大奖
  13. JavaScript 常见鼠标事件
  14. python之turtle库学习(海龟图形)
  15. [C++11 多线程同步] --- 线程同步概述
  16. 【个人C++学习日记】
  17. #Lost My Music 凸包+链表倍增优化 凉宫春日的忧郁
  18. 美女同事的烦恼:如何配置 Apache SkyWalking 告警?
  19. kafka 消息发送和接收
  20. 树莓派烧录RetroPie系统FC NES游戏设置连发按键以及Sprite限制解除并超频

热门文章

  1. 2020ICPC·小米 网络选拔赛第一场 J.Matrix Subtraction
  2. PLC远程监控在纺织机械上的应用
  3. 围墙护栏-耐腐蚀的阳台护栏最佳选择
  4. android idata 模式,Android快速开发之appBase——(3).详解IHolder和IData
  5. Retrofit2 源码解析
  6. Python文件打开的几种方式
  7. IDC行业创业途径分析——看看哪种更适合你
  8. 一起来捉妖超强辅助脚本 轻松获取妖灵快速升级攻略
  9. Windows 10 下载 (3)
  10. centos 6.5 无线网卡配置(hp mini)