JDK 内置实用工具:监视、故障排除

监视工具

JConsole

JConsole 图形用户界面是一种符合 Java 管理扩展 (JMX) 规范的监视工具。JConsole 使用 Java 虚拟机 (Java VM) 的广泛检测来提供有关在 Java 平台上运行的应用程序的性能和资源消耗的信息。

使用方法

本地

  • 使用jconsole命令:监视本地运行的所有 Java 应用程序,JConsole 可以连接到这些应用程序。

  • 使用jconsole PID命令:监视指定PID的Java应用程序。

获取java PID的方法:通过任务管理器查看、通过Java提供的jps命令查看。

远程

使用jsconsole hostName:portNum命令:hostName是运行应用程序的系统的名称,portNum是您在启动 Java VM 时启用 JMX 代理时指定的端口号。

使用service:jmx:<protocol>:<sap>命令:使用 JMX 服务 URL 进行连接。

内容分析

将 JConsole 连接到应用程序后,JConsole 由六个选项卡组成。

  • 概述:显示有关 Java VM 和受监视值的概述信息。

  • 内存:显示有关内存使用的信息。

  • 线程:显示有关线程使用的信息。

  • 类:显示有关类加载的信息。

  • VM:显示有关 Java VM 的信息。

  • MBeans:显示有关 MBeans 的信息。

组成部分

概览

显示有关 CPU 使用情况、内存使用情况、线程计数和在 Java VM 中加载的类的图形监视信息。

提供有关内存消耗和内存池的信息。

提供执行GC的操作,可以随时点击按钮进行垃圾回收

  • 伊甸园空间(堆): 最初为大多数对象分配内存的池。

  • 幸存者空间(堆): 包含在伊甸园空间垃圾回收中幸存下来的物体的池。

  • 终身代(堆): 包含在幸存者空间中存在一段时间的对象的池。

  • 永久生成(非堆): 包含虚拟机本身的所有反射数据的池,如类和方法对象。使用类数据共享的 Java VM,这一代分为只读和读写区域。

  • 代码缓存(非堆): HotSpotJava VM 还包括一个代码缓存,其中包含用于编译和存储本机代码的内存。

堆和非堆内存

Java VM 管理两种类型的内存:堆内存和非堆内存,这两种内存都是在 Java VM 启动时创建的。

  • 堆内存是 Java VM 为所有类实例和数组分配内存的运行时数据区域。堆的大小可能是固定的或可变的。垃圾回收器是一个自动内存管理系统,用于回收对象的堆内存。

  • 非堆内存包括所有线程之间共享的方法区域和 Java VM 的内部处理或优化所需的内存。它存储每类结构,如运行时常量池、字段和方法数据,以及方法和构造函数的代码。方法区域在逻辑上是堆的一部分,但是,根据实现,Java VM 可能不会对它进行垃圾回收或压缩。与堆内存一样,方法区域可能为固定大小或可变大小。方法区域的内存不需要连续。

内存池和内存管理器

内存池和内存管理器是 Java VM 内存系统的关键方面。

  • 内存池表示 Java VM 管理的内存区域。Java VM 至少有一个内存池,它可能会在执行期间创建或删除内存池。内存池可以属于堆内存或非堆内存。

  • 内存管理器管理一个或多个内存池。垃圾回收器是一种内存管理器,负责回收不可到达的对象使用的内存。Java VM 可能具有一个或多个内存管理器。它可以在执行期间添加或删除内存管理器。内存池可以由多个内存管理器管理。

垃圾回收

垃圾回收 (GC) 是 Java VM 释放不再引用的对象占用的内存的方式。通常认为具有活动引用为"活动"且未引用(或无法访问)对象的对象为"已死"。垃圾回收是释放死对象使用的内存的过程。GC 使用的算法和参数对性能有显著影响。

Java hotspot VM 垃圾回收器使用代数 GC。生成 GC 利用大多数程序符合以下概括的观察。

  • 它们创建许多寿命较短的对象,例如迭代器和局部变量。

  • 它们创建一些寿命很长的对象,例如高级持久对象。

线程

提供有关线程使用的信息。

  • 查找监视器死锁线程: 检测对象监视器锁上是否有任何线程死锁。此操作返回死锁线程指示的数组。

  • getThreadInfo: 返回线程信息。这包括线程当前被阻止的名称、堆栈跟踪和监视器锁(如果有)以及持有该锁的线程以及线程争用统计信息。

  • 获取ThreadCpu时间: 返回给定线程消耗的 CPU 时间

显示有关类加载的信息。

VM 概要

提供有关 Java VM 的信息。

MBean

以通用方式显示有关在平台 MBean 服务器注册的所有 MBeans 的信息。MBeans 选项卡允许您访问平台 MXBean 检测的完整集,包括在其他选项卡中不可见的仪器。此外,您还可以使用 MBeans 选项卡监视和管理应用程序的 MBeans。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值