当前位置: 首页 > news >正文

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 运行状态:jvm 或 jvm --runtime

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

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

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

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

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

3

相关文章:

  • OpenCV(应用) —— 凸包检测的实战应用
  • 新鲜速递:OpenAI-Agents-Python:构建智能代理系统的轻量级框架
  • Blueprint —— 蓝图的使用
  • c++之STL库
  • .net 6程序在IIS中部署后点击IIS设置报错“执行此操作时出错”
  • 优化用户体验:关键 Web 性能指标的获取、分析、优化方法
  • Vue项目搜索引擎优化(SEO)终极指南:从原理到实战
  • SpringBoot第二天
  • 基于Spring Boot的网上宠物店系统的设计与实现(LW+源码+讲解)
  • 已知含税金额和税率求不含税金额
  • 【 <一> 炼丹初探:JavaWeb 的起源与基础】之 JavaWeb 中的文件上传与下载:实现文件管理功能
  • 归并排序的一些介绍
  • 深入理解单例模式及其在 C# 中的实现
  • 【Linux指北】Linux的重定向与管道
  • 2022迷宫--反向bfs-最短路效应+传送门
  • JVM中常量池和运行时常量池、字符串常量池三者之间的关系
  • 探索 PyTorch 中的 ConvTranspose2d 及其转置卷积家族
  • C++编程指南28 - 使用 std::async() 启动并发任务
  • 【二分查找 寻找首端】P3718 [AHOI2017初中组] alter|普及+
  • JVM之工具篇
  • 女乘客遭顺风车甩客、深夜丢高速服务区,滴滴霸道回应:赔五百元
  • 农贸美学、业态再构、智能管理,今天的菜市场不止有菜
  • AI翻译技术已走向大规模商用,应用场景覆盖多个关键领域
  • 广东东莞调整普通住宅价格标准:一类镇街上浮300余元/平方米
  • 最高法:侵犯著作权罪中的“复制发行”不包括单纯发行行为
  • 董明珠的接班人还是董明珠