jconsole与jvisualvm

2023-12-19 12:52
文章标签 jvisualvm jconsole

本文主要是介绍jconsole与jvisualvm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

jconsole

环境变量配置好后 直接输入在cmd 输入jconsole 即可
在这里插入图片描述
在这里插入图片描述

jvisualvm

cmd 输入jvisualvm
在这里插入图片描述
在这里插入图片描述

  1. jvisualvm 能干什么
    监控内存泄露,跟踪垃圾回收,执行时内存、cpu 分析,线程分析… 运行:正在运行的
    休眠:sleep
    等待:wait
    驻留:线程池里面的空闲线程
    监视:阻塞的线程,正在等待锁
  2. 想要看gc 记得安装插件 visual Gc
    在这里插入图片描述

在压力测试期间监听 这些Gc 指标

监控docker 上的容器 使用docker stats

Gc

1、几个常用工具
jstack 查看 jvm 线程运行状态,是否有死锁现象等等信息
jinfo 可以输出并修改运行时的 java 进程的 opts。
jps 与 unix 上的 ps 类似,用来显示本地的 java 进程,可以查看本地运行着几个 java程序,并显示他们的进程号。
jstat 一个极强的监视 VM 内存工具。可以用来监视 VM 内存内的各种堆和非堆的大小及其内存使用量。
jmap 打印出某个 java 进程(使用 pid)内存内的所有’对象’的情况(如:产生那些对象,及其数量)

2、命令示例
jstat 工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程 id,和所选参数。
jstat -class pid 显示加载 class 的数量,及所占空间等信息
jstat -compiler pid 显示 VM 实时编译的数量等信息。
jstat -gc pid 可以显示 gc 的信息,查看 gc 的次数,及时间
jstat -gccapacity pid 堆内存统计,三代(young,old,perm)内存使用和占用大小
jstat -gcnew pid 新生代垃圾回收统计在使用这些工具前,先用 JPS 命令获取当前的每个 JVM 进程号,然后选择要查看的 JVM。
jstat -gcnewcapacity pid 新生代内存统计
jstat -gcold pid 老年代垃圾回收统计除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6 是每 250 毫秒打印一次,一共打印 6 次,还可以加上-h3 每三行显示一下标题。
jstat -gcutil pid 1000 100 : 1000ms 统计一次 gc

jinfo 是 JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括 JavaSystem 属性和 JVM 命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo 可以从 core 文件里面知道崩溃的 Java 应用程序的配置信息
jinfo pid 输出当前 jvm 进程的全部参数和系统属性
jinfo -flag name pid 可以查看指定的 jvm 参数的值;打印结果:-无此参数,+有
jinfo -flag [+|-]name pid 开启或者关闭对应名称的参数(无需重启虚拟机)
jinfo -flag name=value pid 修改指定参数的值
jinfo -flags pid 输出全部的参数
jinfo -sysprops pid 输出当前 jvm 进行的全部的系统属

jmap 可以生成 heap dump 文件,也可以查看堆内对象分析内存信息等,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError 参数来让虚拟机出现 OOM 的时候自动生成 dump 文件。
jmap -dump:live,format=b,file=dump.hprof piddump 堆到文件,format 指定输出格式,live 指明是活着的对象,file 指定文件名。eclipse 可以打开这个文件
jmap -heap pid打印 heap 的概要信息,GC 使用的算法,heap 的配置和使用情况,可以用此来判断内存目前的使用情况以及垃圾回收情况
jmap -finalizerinfo pid 打印等待回收的对象信息
jmap -histo:live pid 打印堆的对象统计,包括对象数、内存大小等。jmap -histo:live 这个命令执行,JVM 会先触发 gc,然后再统计信息
jmap -clstats pid打印 Java 类加载器的智能统计信息,对于每个类加载器而言,对于每个类加载器而言,它的名称,活跃度,地址,父类加载器,它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。
-F 强制模式。如果指定的 pid 没有响应,请使用 jmap -dump 或 jmap -histo 选项。此模式下,不支持 live 子选项。
jmap -F -histo pid

jstack 是 jdk 自带的线程堆栈分析工具,使用该命令可以查看或导出 Java 应用程序中线程堆
栈信息。
jstack pid 输出当前 jvm 进程的全部

作者声明

如有问题,欢迎指正!

这篇关于jconsole与jvisualvm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/512239

相关文章

性能分析之使用 Jvisualvm dump 分析示例

一、前言 在 JMeter 入门系列中相信大家对工具使用已经没问题,今天开起性能测试进阶系列之 jvisualvm 工具简单学习,目标是通过演示 Jvisualvm 工具定位代码,帮助性能测试工程师直接定位代码位置,协助开发解决性能问题; 前置条件: 1、本机 JDK 并且工具包中有 Jvisualvm2、本机安装JMeter3、本机能运行 idea 或者能运行 Demo 代码 二、线程状

JVM性能监控实用工具jconsole与jvisualvm

jdk小工具jconsole与jvisualvm,jvisualvm为升级版的jconsole;通过命令行启动,可监控本地和远程应用。 推荐使用:jvisualvm jconsole使用 1.直接命令 jcondole 打开窗口,选择我们要查看的进行 连接后可看到面板 jvisualvm使用 1.安装启动jvisualvm 注意:jdk 1.8.0_361之后需

jconsole远程连接

jconsole可以远程连接的前提(需要在部署应用时像下面示例这样设置): -Djava.rmi.server.hostname=127.0.0.1-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=3214-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.m

内存分析工具MAT(Memory Analyzer Tool)从安装到使用,配合jconsole jvisualvm分析

一.安装 首先,你得有一个Eclipse(因为MAT是Eclipse的插件) 然后,你要在Eclipse上安装MAT,步骤如下: 1.点击Help,Install New Soft,就出现了以下Install界面:然后我们点击ADD,在弹出的框中填上Mat插件的地址:http://download.eclipse.org/mat/1.6/update-site/,确定后, 点击Select

Eclipse导入Maven项目提示:Missing artifact sun.jdk:jconsole:jar:1.8

一、问题描述 Eclipse导入Maven项目提示:Missing artifact sun.jdk:jconsole:jar:1.8 错误 二、解决方法 JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,在安装的JDK中自带了这个工具,在bin目录下 第一种方法: 可以手动通过命令把这个jar安装到Mav

【多线程】如何使用jconsole工具查看Java线程的详细信息?

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 先运行java程序!2. 在jdk目录下的bin文件夹中找到jconsole.exe3. 新建连接4. 观察线程状态5. 描述线程执行信息6. 可能遇到的问题 jconsole工具是JDK提供的工具,可以通过第三方工具jconsole,能够查看出java进程里面的线程详情信息和线程的

[JDK工具-10] jvisualvm 多合一故障处理工具

文章目录 1. 介绍2. 查看堆的变化3. 查看堆快照4. 导出堆快照文件5. 查看class对象加载信息6. CPU分析:发现cpu使用率最高的方法7. 查看线程快照:发现死锁问题 1. 介绍 VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪

Idea-jconsole使用idea

Idea的运行环境加上下面内容 -Djava.rmi.server.hostname=127.0.0.1-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=11911-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.

JVM 频繁full gc / oom内存溢出/ 分析工具 jmap/Jconsole 用法

分析解决方法: 1 用JVisualVM 或Jconsole 分析 进程(不用jmap dump出镜像,JVisualVM功能比Jconsole强大) 2 先用jmap dump出镜像,再导入mat分析 ------------------------- Java内存分析工具MAT(Memory Analyzer Tool)   JVisualVM是一个集成多个JDK命令行工具的可视化

JVM性能监控于故障处理工具 jps/ jstat/jinfo/jmap/jhat/jstack/HSDIS/jconsole/jvisualvm

1 jps:虚拟机进程状况工具:查看当前运行的java进程id,后面的许多命令都是基于此命令找到pid再进一步排查问题。 2 jstat:虚拟机统计信息监视工具,如每隔10s监视jvm的运行状态   3 jinfo:用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。 特别说明两个命令 -