JVM相关工具(JDK自带)

1.jps(JVM Process Status Tool)列出正在运行的虚拟机进程

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

  • 指令

    jps -l	# 输出主类的全名,如果进程执行的是jar包则输出jar路径
    jps -v	# 输出虚拟机进程启动时JVM参数
    

2.jstat(JVM Statistics Monitoring Tool)监视虚拟机各种运行状态信息的命令行工具

  • 作用:用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具

  • 指令

    jstat -gc 14607 250 3	# 14607是进程id,250表示250毫秒打印一次,3表示一共打印3次
    S0C    第一个幸存区大小
    S1C    第二个幸存区大小
    S0U    第一个幸存区使用大小
    S1U    第二个幸存区使用大小
    EC     伊甸园区大小
    EU     伊甸园区使用大小
    OC     老年代大小
    OU     老年代使用大小
    MC     方法区大小
    MU     方法区使用大小
    CCSC   压缩类空间大小
    CCSU   压缩类空间使用大小
    YGC    新生代垃圾回收次数
    YGCT   新生代垃圾回收消耗时间
    FGC    老年代垃圾回收次数
    FGCT   老年代垃圾回收消耗时间
    GCT	   垃圾回收消耗总时间
    

3.jinfo(Configuration Info for Java)实时的查看和调整虚拟机各项参数

  • 作用:实时的查看和调整虚拟机各项参数。使用jps -v命令可以查看虚拟机启动时显示指定的参数列表,但如果想知道未被显示指定的参数的系统默认值,除了去找资料外,就只能使用info -flag进行查询

  • 指令

    jinfo -flags 14607
    

4.jmap(Memory Map for Java)生成堆转储快照

  • 作用:用于生成堆转储快照。如果不使用jmap命令,想要获取Java堆转储快照,还有一些比较“暴力”的手段:-XX:+HeapDumpOnOutOfMemoryError参数可以让虚拟机在OOM异常出现之后自动生成dump文件,用于系统复盘环节

  • 指令

    jmap -dump:format=b,file=/root/a 14607	# 生成Java堆转储快照
    
    jmap -histo 14607 | more	# 显示堆中对象统计信息,包括类、实例数量、合计容量
    B:byte
    C:char
    I:int
    

5.jhat(JVM Heap Analysis Tool)分析jmap生成的堆转储快照

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

  • 特点

    • jhat分析工作是一个耗时且消费硬件资源的过程,一般从服务下载到本地分析
    • jhat的分析功能相对来说比较简陋
  • 指令

    ./jhat d://a
    

6.jstack(Stack Trace for Java)生成虚拟机当前时刻的线程快照

  • 作用:用于生成虚拟机当前时刻的线程快照(一般称为thread dump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿通过jstack来查看各个线程的调用堆栈,就可以知道相应的线程到底在后台做些什么或者等待什么资源

  • 指令

    jstack -l 14607		# 常用命令
    jstack -F 14607		# 当正常输出的请求不被响应时,强制输出线程堆栈Force
    

7.jconsole(Java Monitoring and Management Console)可视化监视、管理工具

  • 作用:是一种基于JMX的可视化监视、管理工具,它管理部分的功能是针对JMXBean进行管理,由于XBean可以使用代码、中间件服务器的管理控制台或者所有符合JMX规范的软件进行访问

  • 特点:jconsole集成了线程与内存的可视化展示

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值