虚拟机性能监控与故障处理工具

本文介绍了JDK中常用的命令行工具,包括jps、jstat、jinfo、jmap、jhat、jstack等。详细解释了每个工具的功能及使用方法,并提供了具体的命令示例。

一:JDK命令行工具

jps:显示指定系统内所有的Hotspot虚拟机进程。

jstat:用于收集HotSpot虚拟机各方面的运行数据

jinfo:显示虚拟机配置信息

jmap:Memory Map for java,生成虚拟机的内存转储快照。

jhat:用于分析heapdump文件。

jstack:显示虚拟机的线程快照

jps 命令可以列出正在运行的虚拟金进程,并显示虚拟机执行的主类(Main class)名称,以及这些进程的本地虚拟机唯一ID(LVMID)

  1. jps [options] [hostid]

-q:只显示LVMID,省略主类的名称。

-m:输出虚拟机进程启动时传递给主类main()函数的参数

-l:输出主类的全名,如果执行的是Jar包,给出Jar路径。

-v:输出虚拟机进程启动时JVM参数。



  • jstat 

jstat [option vmid [interval [s|ms] [count]]

参数interval 和count代表查询间隔和次数,省略代表只查询一次。假设需要每隔250ms就查询一次进程2764垃圾收集情况,一共查询20次。

jstat -gc 2764 250 20





jconsole可视化工具

先看效果: https://pan.quark.cn/s/c7070e7537b1 [!NOTE] 每到答辩季我就会喜获stars,谢谢大家的支持! 欢迎推广传播本repo(https://.com/atomiechen/THU-PPT-Theme),也欢迎贡献变体,提供更多选择 清华简约主题PPT模板 Repo stars 2020年春夏之交,答辩期间很多同学都在寻找清华主题的答辩模板。 一方面有使用LaTeX制作Beamer的模板(见Overleaf上的模板THU Beamer Theme),另一方面民间也存在着一些PPT模板。 很多人可能不适应Beamer的使用(主要是内容和排版设计不是可见即所得,定制有门槛),以及我找到的PPT模板也都不太好使(要么图案设计太复杂、不好看,要么没有制作成PPT母版导致每次使用都要复制粘贴+微调,不方便)。 我制作了清华简约主题的PPT模板,后续有新的设计我会逐渐加入,也欢迎有兴趣有想法的朋友们添砖加瓦! 内容 所有模板均为 文件。 此外也提供转换脚本用于 Pandoc自动生成PPTX。 各个版本的修改历史见 CHANGELOG.md。 下载 推荐直接从 Releases 下载最新发布版。 也可以在 仓库 单独下载所需文件。 效果 16:9比例,v1留边、v1顶边、v3留边白底、v3顶边白底: demo 16:9比例,其他风格模板:v1扁平、v2扁平、v1暗光 demo2 其他变体设计参见 variants/README.md。 使用方式 可以基于所提供的文件自行修改内容,也可以在新建的PPT文稿中应用该模板。 后者在 MS Office 2019 For Mac 的 PowerPoint 里的具体使用方式为:首先选择幻灯片尺...
<think>我们正在讨论Java虚拟机性能监控故障处理工具。根据提供的引用,我们可以总结出几种常用工具: 1. VisualVM:功能强大的运行监视和故障处理工具 2. jstat:监视虚拟机各种运行状态信息的命令行工具 3. jinfo:查看和调整虚拟机配置信息 4. jps:列出正在运行的虚拟机进程 现在,我将按照用户要求,详细介绍这些工具,并生成相关问题。 注意:回答中需要引用时,在引用段落末尾添加[^1]等标识,并确保引用标记提供的引用编号对应。 </think> ### Java虚拟机性能监控故障处理工具 以下是Java虚拟机(JVM)性能监控故障处理的常用工具及其核心功能: #### 1. **VisualVM(可视化监控)** - **功能**:提供内存分析、CPU分析、线程监控、堆转储分析等图形化功能 - **特点**:支持插件扩展,可连接本地/远程JVM,集成多种监控能力于一体 - **使用场景**:实时监控应用资源占用,定位内存泄漏,分析线程死锁[^1] ```bash jvisualvm # 命令行启动 ``` #### 2. **jstat(命令行监控)** - **功能**:实时输出类加载、内存、GC等运行时数据 - **关键指标**: - `YGC`:Young GC次数 - `FGC`:Full GC次数 - `GCT`:GC总耗时 - `E/Eden`、`S0/S1`、`O/Old`分区使用率 - **示例命令**: ```bash jstat -gcutil <pid> 1000 5 # 每1秒输出1次GC数据,共5次 ``` **输出解析**: ``` E S0 S1 O P YGC YGCT FGC FGCT GCT 6.2 0.0 0.0 41.42 47.20 16 0.105 3 0.472 0.577 ``` 表示:Eden区使用6.2%,Survivor区空闲,老年代41.42%,永久代47.20%,Young GC 16次耗时0.105秒,Full GC 3次耗时0.472秒[^2] #### 3. **jinfo(配置查看)** - **功能**:动态查看/修改JVM参数 - **常用命令**: ```bash jinfo -flags <pid> # 查看所有JVM参数 jinfo -flag MaxHeapSize <pid> # 查看指定参数 ``` - **输出示例**: ``` -XX:MaxHeapSize=482344960 -XX:InitialHeapSize=31457280 -XX:+UseCompressedOops ``` 表示:最大堆内存460MB,初始堆30MB,启用压缩指针[^3] #### 4. **jps(进程定位)** - **功能**:快速定位Java进程ID(PID) - **常用参数**: ```bash jps -l # 输出主类全名 jps -v # 输出JVM启动参数 ``` - **输出示例**: ``` 13780 org.apache.catalina.startup.Bootstrap ``` 配合其他工具使用:`jstat -gc 13780`[^4] #### 工具对比 | 工具 | 类型 | 核心能力 | 适用场景 | |---------|------------|------------------------------|------------------------| | VisualVM| 图形化 | 全链路监控、堆分析 | 开发/测试环境深度诊断 | | jstat | 命令行 | 实时GC/内存监控 | 服务器无GUI环境监控 | | jinfo | 命令行 | JVM参数查看修改 | 运行时配置调优 | | jps | 命令行 | 快速获取Java进程ID | 所有工具的基础操作 | > **最佳实践**:生产环境建议组合使用: > 1. 通过`jps`获取进程ID > 2. 用`jstat`持续监控GC状态 > 3. 使用`jinfo`验证JVM参数 > 4. 通过VisualVM远程连接进行深度分析[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值