JVM笔记-性能监控与分析工具

本文介绍了JVM性能监控和分析的工具,包括JDK自带的jps、jstat、jinfo、jstack、jmap、jhat、jvisualvm和jconsole,以及阿里开源的Arthas。通过实例展示了如何使用这些工具进行内存、线程、类加载等信息的监控和故障排查,特别提到了Arthas的dashboard、jvm、thread、sc、sm、jad和redefine等功能。
摘要由CSDN通过智能技术生成

1. 概述

前面几篇文章分析了 JVM 的一些概念,大部分都是偏理论的,本文介绍一些可以实操的 JVM 性能监控与分析工具。

主要包括 JDK 自带的一些常用工具,以及阿里开源的 Java 诊断工具 Arthas。

2. 性能监控与故障处理工具

2.1 JDK 自带工具

JDK 自带的几个常用工具如下:

名称 主要作用
jps JVM Process Status Tool, 显示指定系统内所有的 HotSpot 虚拟机进程
jstat JVM Statistics Monitoring Tool, 用于收集 HotSpot 虚拟机各方面的运行数据
jinfo Configuration Info for Java, 显示虚拟机配置信息
jmap Memory Map for Java, 生成虚拟机的内存转储快照(heapdump 文件)
jhat JVM Heap Analysis Tool, 用于分析 heapdump 文件(它会建立一个 HTTP/HTML 服务器,让用户可以在浏览器上查看分析结果)
jstack Stack Trace for Java, 显示虚拟机的线程快照

这里只是少部分,其他更多命令可以参考官方文档:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/toc.html

2.1.1 jps: 虚拟机进程状况工具

  • 命令格式

jps [ options ] [ hostid ]
  • jps

$ jps
15236 Jps
14966 Example1
  • jps -l

$ jps -l
15249 sun.tools.jps.Jps
14966 com.jaxer.jvm.egs.Example1
  • jps -m

$ jps -m
15264 Jps -m
14966 Example1
  • jps -v

$ jps -v
14966 Example1 -Dvisualvm.id=44321340563858 -Xmx50m -Xms50m -XX:+PrintGCDetails -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=61849:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8
15278 Jps -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home -Xms8m
  • jps -q

$ jps -q
9938
14966
15334

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

  • 命令格式

jstat [option vmid [interval[s|ms] [count]] ]
  • 示例 1:监控堆内存信息

$ jstat -gc 14966
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
2048.0 2048.0  0.0    0.0   12800.0   9345.8   34304.0    26638.8   5248.0 4971.3 640.0  554.9       2    0.032   2      0.049    0.082

如图所示:

参数主要是新生代、老年代的内存空间占用情况以及 GC 的次数和时间,说明如下:

S0: Survivor space 0 utilization as a percentage of the space's current capacity.

S1: Survivor space 1 utilization as a percentage of the space's current capacity.

E: Eden space utilization as a percentage of the space's current capacity.

O: Old space utilization as a percentage of the space's current capacity.

M: Metaspace utilization as a percentage of the space's current capacity.

CCS: Compressed class space utilization as a percentage.

YGC: Number of young generation GC events.

YGCT: Young generation garbage collection time.

FGC: Number of full GC events.

FGCT: Full garbage collection time.

GCT: Total garbage collection time.

官方文档:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html#BEHHGFAE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值