JVM之Arthas的jvm命令

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用微信支付,扫码加群。由于维护成本问题得不到解决,可能将停止线上维护。

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》
https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html

有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。

最后再送一句:最好是学会了,而不是学废了!!

2

jvm 是 Arthas 中用于查看 Java 虚拟机(JVM)相关信息的命令。它可以显示 JVM 的运行状态、内存、线程、类加载、系统属性等信息,帮助开发者快速了解 JVM 的整体情况。


1. 启动 Arthas

在终端中启动 Arthas:

复制代码
java -jar arthas-boot.jar

选择需要诊断的 Java 进程(输入进程编号)。


2. jvm 命令详解

基本用法

bash

复制

复制代码
jvm
  • 显示 JVM 的详细信息,包括:

    • 运行时信息:JVM 版本、启动时间、运行时间等。

    • 内存信息:堆内存、非堆内存、GC 信息等。

    • 线程信息:线程总数、守护线程数、死锁线程数等。

    • 类加载信息:已加载类数量、已卸载类数量等。

    • 系统属性:JVM 的系统属性。


查看特定信息

jvm 命令支持查看特定部分的信息,通过以下子命令实现:

1. 查看运行时信息
复制代码
jvm --runtime
  • 显示 JVM 的运行时信息,包括:

    • JVM 名称、版本、启动时间、运行时间等。
2. 查看内存信息
复制代码
jvm --memory
  • 显示 JVM 的内存信息,包括:

    • 堆内存、非堆内存、GC 信息等。
3. 查看线程信息
复制代码
jvm --thread
  • 显示 JVM 的线程信息,包括:

    • 线程总数、守护线程数、死锁线程数等。
4. 查看类加载信息
复制代码
jvm --class
  • 显示 JVM 的类加载信息,包括:

    • 已加载类数量、已卸载类数量等。
5. 查看系统属性
复制代码
jvm --props
  • 显示 JVM 的系统属性,包括:

    • java.versionjava.homeos.name 等。

3. 使用场景

场景 1:查看 JVM 运行状态

  1. 启动 Arthas:

    复制代码
    java -jar arthas-boot.jar
  2. 使用 jvm 命令查看 JVM 运行状态:

    复制代码
    jvm

场景 2:查看内存使用情况

  1. 启动 Arthas:

    复制代码
    java -jar arthas-boot.jar
  2. 使用 jvm --memory 查看内存信息:

    复制代码
    jvm --memory

场景 3:查看线程信息

  1. 启动 Arthas:

    复制代码
    java -jar arthas-boot.jar
  2. 使用 jvm --thread 查看线程信息:

    复制代码
    jvm --thread

场景 4:查看系统属性

  1. 启动 Arthas:

    复制代码
    java -jar arthas-boot.jar
  2. 使用 jvm --props 查看系统属性:

    复制代码
    jvm --props

4. 示例

示例 1:查看 JVM 运行状态

复制代码
jvm

输出:

plaintext

复制代码
RUNTIME
----------------------------------------------------------------------------
 MACHINE-NAME: my-machine
 JVM-START-TIME: 2023-10-01 12:00:00
 MANAGEMENT-SPEC-VERSION: 1.2
 SPEC-NAME: Java Virtual Machine Specification
 SPEC-VENDOR: Oracle Corporation
 SPEC-VERSION: 1.8
 VM-NAME: Java HotSpot(TM) 64-Bit Server VM
 VM-VENDOR: Oracle Corporation
 VM-VERSION: 25.231-b11
 UPTIME: 1234567 ms

MEMORY
----------------------------------------------------------------------------
 HEAP-MEMORY-USAGE: init=268435456, used=123456789, committed=536870912, max=1073741824
 NON-HEAP-MEMORY-USAGE: init=2555904, used=12345678, committed=16777216, max=134217728
...

THREAD
----------------------------------------------------------------------------
 COUNT: 45
 DAEMON-COUNT: 5
 PEAK-COUNT: 50
 STARTED-COUNT: 100
 DEADLOCK-COUNT: 0
...

CLASS
----------------------------------------------------------------------------
 LOADED-CLASS-COUNT: 12345
 TOTAL-LOADED-CLASS-COUNT: 23456
 UNLOADED-CLASS-COUNT: 3456
...

PROPS
----------------------------------------------------------------------------
 java.version: 1.8.0_231
 java.home: /usr/lib/jvm/java-8-oracle
 os.name: Linux
 os.arch: amd64
 os.version: 4.15.0-112-generic
...

示例 2:查看内存信息

复制代码
jvm --memory

输出:

plaintext

复制代码
MEMORY
----------------------------------------------------------------------------
 HEAP-MEMORY-USAGE: init=268435456, used=123456789, committed=536870912, max=1073741824
 NON-HEAP-MEMORY-USAGE: init=2555904, used=12345678, committed=16777216, max=134217728
...

示例 3:查看线程信息

复制代码
jvm --thread

输出:

plaintext

复制代码
THREAD
----------------------------------------------------------------------------
 COUNT: 45
 DAEMON-COUNT: 5
 PEAK-COUNT: 50
 STARTED-COUNT: 100
 DEADLOCK-COUNT: 0
...

示例 4:查看系统属性

复制代码
jvm --props

plaintext

复制代码
PROPS
----------------------------------------------------------------------------
 java.version: 1.8.0_231
 java.home: /usr/lib/jvm/java-8-oracle
 os.name: Linux
 os.arch: amd64
 os.version: 4.15.0-112-generic
...
复制代码

5. 总结

jvm 命令是 Arthas 中用于查看 JVM 信息的核心工具,支持以下功能:

  • 查看 JVM 运行状态:jvmjvm --runtime

  • 查看内存信息:jvm --memory

  • 查看线程信息:jvm --thread

  • 查看类加载信息:jvm --class

  • 查看系统属性:jvm --props

通过 jvm 命令,可以快速了解 JVM 的整体运行状态,为性能分析和问题排查提供基础数据。

3

相关推荐
麓殇⊙1 小时前
CurrentHashMap的整体系统介绍及Java内存模型(JVM)介绍
java·开发语言·jvm
虚!!!看代码3 小时前
【JVM-GC调优】
java·开发语言·jvm
碎梦归途3 小时前
23种设计模式-行为型模式之模板方法模式(Java版本)
java·开发语言·jvm·设计模式·软考·模板方法模式·软件设计师
秀才恶霸7 小时前
02_JVM
java·jvm
图梓灵8 小时前
JVM内存模型深度解剖:分代策略、元空间与GC调优实战
java·jvm·笔记
薯条不要番茄酱11 小时前
【JVM】从零开始深度解析JVM
java·jvm
虚!!!看代码13 小时前
【JVM-垃圾回收器】
jvm
bing_1581 天前
JVM happens-before 原则有哪些?
java·jvm
Thanwind1 天前
JVM运行时数据区域(Run-Time Data Areas)的解析
java·jvm·jdk·jmm
黄雪超2 天前
JVM——Java内存模型
java·开发语言·jvm