JVM命令

1.查看java线程
ps -ef | grep java
在这里插入图片描述
2.top 查看
命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
各个数据的分析如下:
https://www.cnblogs.com/YangJavaer/p/7976612.html在这里插入图片描述
3.free在这里插入图片描述
4.jmap -J-d64 -heap 31523
查看内存情况。
https://www.cnblogs.com/sxdcgaq8080/p/11089664.html
在这里插入图片描述
在这里插入图片描述
5. jmap -histo:live 31523
打印每个class 实例数目,内存占用,类全名信息,如果live就是只统计活对象。

打印到txt中进行分析:
jmap -histor:live 31523 > debug.txt
在这里插入图片描述

在这里插入图片描述

6.jamp -finalizerinfo PID

在这里插入图片描述
7.jmap -heap PID
在这里插入图片描述

### 常用 JVM 命令列表 以下是常用的 JVM 命令及其功能说明: #### 1. jstat `jstat` 是用于监控 JVM 运行时状态的工具,可以显示类加载、内存使用、垃圾回收等信息。其基本语法为: ```bash jstat [option] LVMID [interval] [count] ``` 例如,查看某个进程的垃圾回收统计信息: ```bash jstat -gcutil <LVMID> 1000 5 ``` 这里 `<LVMID>` 是目标 JVM 的进程 ID[^1]。 #### 2. jinfo `jinfo` 用于查看和修改 JVM 的配置参数。可以通过以下命令查看或设置 JVM 参数: - 查看所有 JVM 标志: ```bash jinfo -flags <LVMID> ``` - 查看所有 Java 系统属性: ```bash jinfo -sysprops <LVMID> ``` - 修改最大堆内存大小(需要权限): ```bash jinfo -flag MaxHeapSize=2g <LVMID> ``` 请注意,并非所有 JVM 标志都可以在运行时动态修改[^2]。 #### 3. jmap `jmap` 用于生成 Java 堆的 Dump 文件,帮助分析内存使用情况。常用命令包括: - 生成堆 Dump 文件: ```bash jmap -dump:format=b,file=heapDump.hprof <LVMID> ``` - 查看堆内存分布: ```bash jmap -heap <LVMID> ``` 生成的 Dump 文件可以进一步通过 `jhat` 或其他工具进行分析[^3]。 #### 4. jhat `jhat` 用于解析 Java 堆 Dump 文件并启动一个 Web 服务器,便于通过浏览器查看内存中的对象分布。使用方法如下: ```bash jhat heapDump.hprof ``` 启动后,可以通过浏览器访问指定端口查看分析结果。 #### 5. jstack `jstack` 用于生成线程转储文件,帮助分析线程死锁或性能瓶颈。常用命令: ```bash jstack <LVMID> ``` 该命令输出当前 JVM 中的所有线程及其状态信息。 #### 6. jps `jps` 用于列出当前系统中所有的 Java 进程及其主类名称。常用命令: ```bash jps -l ``` 该命令会返回类似以下的结果: ``` 19483 com.wind.ssm.java8.test.JHatTest 19507 sun.tools.jps.Jps ``` #### 7. jcmd `jcmd` 是一个多功能命令行工具,支持发送诊断命令到正在运行的 JVM。例如: - 触发一次完整的垃圾回收: ```bash jcmd <LVMID> GC.run ``` - 查看 JVM 的帮助信息: ```bash jcmd <LVMID> help ``` #### 8. 方法区相关命令 方法区通常位于持久代(Permanent Generation),可以通过以下参数调整其大小: - 设置持久代最小值和最大值: ```bash -XX:PermSize=<size> -XX:MaxPermSize=<size> ``` 从 JDK 8 开始,持久代被元空间(Metaspace)取代,可以通过以下参数调整: ```bash -XX:MetaspaceSize=<size> -XX:MaxMetaspaceSize=<size> ``` 这些参数可以通过 `jinfo` 或 JVM 启动参数进行配置[^4]。 --- ### 示例代码 以下是一个生成堆 Dump 文件并分析的完整流程: ```bash # 步骤1:启动 Java 程序 java -Xms40m -Xmx40m -XX:NewSize=20M -XX:MaxNewSize=20M -XX:SurvivorRatio=2 -XX:MaxTenuringThreshold=15 JHatTest # 步骤2:获取 Java 进程 ID jps -l # 步骤3:生成堆 Dump 文件 jmap -dump:format=b,file=heapDump.hprof <LVMID> # 步骤4:解析 Dump 文件 jhat heapDump.hprof ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值