JDK性能监控工具

本文介绍了多个Java性能监控工具,如jps、jstat、jinfo、jmap等,这些工具帮助开发者监控Java应用的运行状况,包括进程查看、虚拟机参数调整、堆内存分析等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jps-查看Java进程

  Jps命令作用是列出系统中所有的Java应用程序。通过Jps命令可以方便的查看Java进程的启动类、传入参数和Java虚拟机参数等。
  Jps命令参数:

  • 参数 -q :指定jps只输入进程id
  • 参数 -m:用于输出传递给Java进程(主函数)的参数
  • 参数 - l :输出主函数的完整路径
  • 参数 - v:可以显示传递给Java虚拟机的参数

在这里插入图片描述

jstat-查看虚拟机运行时信息

  Jstat命令是一个可以观察Java应用程序运行时相关信息的工具,可查看堆信息的详细信息
  jstat -help|-options
  jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]
  使用 jstat -options 获取 option的参数列表:

  • class:获取ClassLoader的相关信息
  • compiler:显示JIT编译的相关信息
  • gc:显示与GC相关的堆信息
  • gccapacity:显示各个代的容量及使用情况
  • gccause:显示垃圾回收相关信息(同-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱发原因
  • gcmetacapacity:显示永久代的大小
  • gcnew:显示新生代信息
  • gcnewcapacity:显示新生代大小与使用情况
  • gcold:显示老年代和永久代的信息
  • gcoldcapacity:显示老年代的大小。
  • gcutil:显示垃圾回收信息
  • printcompilation:输出JIT编译的方法信息
      其他参数
  • t:可以在输出信息前加上一个Timestamp列,显示程序的运行时间
  • h:可以指定在周期性数据输出时,输出多少行数据后输出一个表头信息
  • interval参数用于指定输出统计数据的周期,单位为毫秒
  • count参数用于指定一共输出多少次数据
    在这里插入图片描述

jinfo-查看虚拟机参数

  jinfo命令可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时修改部分参数。
  相关参数

  • -flag:打印指定Java虚拟机的参数值
  • -flag [+|-]:设置指定Java虚拟机参数的布尔值。
  • flag=:设置指定Java虚拟机参数的值。

jmap-导出堆到文件

  jmap命令是一个多功能的命令。它可以生成Java程序的堆Dump文件,也可以查看堆内对象实例的统计信息、查看ClassLoader的信息及finalizer队列
  参数

  • -histo[:live] :java对象的统计信息(:live存活)
  • -dump:导出堆到文件(jmap -dump:live,format=b,file=heap.bin pid)
  • -finalizerinfo: 查看finalizer队列
  • -permstat:查看类加载器信息和父子关系
    在这里插入图片描述

jhat-jdk自带的堆分析工具

  使用jhat命令可以分析Java应用程序的堆快照内容
jhat /opt/heap.bin 7000端口可访问。
在这里插入图片描述

jcmd-多功能命令行

  是一个多功能的工具,可以用来导出堆、查看Java进程、导出线程信息、执行GC等

  • -l:列出当前系统所有虚拟机-> jcmd -l
  • help:针对每一个虚拟机,列出所支持的命令-> jcmd 2420 help
    在这里插入图片描述
    格式:jcmd [port] [command] jcmd 2420 VM.uptime

jconsole-图形化虚拟机监控工具

  JConsole是JDK自带的图形化性能监控工具。通过JConsole工具,可以查看Java应用程序的运行概况,可以监控堆信息、永久区使用情况、类加载情况
在这里插入图片描述

JConsole远程连接配置

Jconsole

//无口令
java 
-Djava.rmi.server.hostname=172.17.168.161  #远程服务器ip,即本机ip
-Dcom.sun.management.jmxremote #允许JMX远程调用
-Dcom.sun.management.jmxremote.port=8888  #自定义jmx 端口号
-Dcom.sun.management.jmxremote.ssl=false  # 是否需要ssl 安全连接方式
-Dcom.sun.management.jmxremote.authenticate=false #是否需要秘钥
HoldIOMain 

在这里插入图片描述

Visual VM-可视化性能监控工具

  Visual VM是一个功能强大的多合一故障诊断和性能监控可视化工具,它集成了多种性能统计工具的功能,使用Visual VM可以代替jstat、jmap、jhat、jstack,甚至代替JConsole。在JDK6升级到JDK7以后,Visual VM便作为JDK的一部分发布,即它完全免费。
在这里插入图片描述

简单介绍下能做什么

在这里插入图片描述

  • 概述:查看JVM参数、版本和系统属性
  • 监视:监控CPU、内存、类和线程信息,可执行GC和 堆Dump
  • 线程: 监控线程的桩体和运行时间 和线程Dump
  • 采样器:实时监控CPU和内存的占用情况,CPU采样可以定位到方法,可以设置采样的条件

内存快照分析

文件->装入->选择文件
在这里插入图片描述

  1. 概要展示了当前内存的整体信息,包括内存大小、实例总数、类总数等
  2. 类页面中,以类为索引,显示了每个类的实例数和占用空间。在类页面中,还可以对两个不同的内存快照文件进行比较,这个功能可以帮助开发者快速分析同一应用程序在运行的不同时刻,内存数据产生的变化。在这个类展示的页面中,如果需要获取指定类的更多信息,可以单击右键,进入该类的实例页面
  3. 在实例数页面中,将显示指定类的所有实例。开发者可以查看当前内存中的实际内容。
  4. OQL控制台提供了更强大的对象查询功能。(需要了解OQL语法)

MAT(MemoryAnalyzer)

File->open heap dump…选择堆转储文件。打开后 选择泄漏分析报告、 打开堆转储时显示此对话框 Finish
在这里插入图片描述
先到这里挖个坑,后头来补。当然还有阿里的arthas也没说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值