jstat命令

本文详细介绍了JStat,一个用于实时监控Java应用程序资源和性能的轻量级命令行工具。通过使用JStat,可以监控堆内存、垃圾回收状态,以及对象在年轻代、老年代和永久代的使用情况。文章还提供了多个命令示例,展示了如何获取不同类型的内存使用详情。
Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对  Heap size和垃圾回收状况的监控
 

语法结构:

Usage: jstat -help|-options

       jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

 参数解释:

Options — 选项,我们一般使用 -gcutil 查看gc情况

vmid    — VM的进程号,即当前运行的java进程号

interval– 间隔时间,单位为秒或者毫秒

count   — 打印次数,如果缺省则打印无数次

 

S0  — Heap上的 Survivor space 0 区已使用空间的百分比
S1  — Heap上的 Survivor space 1 区已使用空间的百分比
E   — Heap上的 Eden space 区已使用空间的百分比
O   — Heap上的 Old space 区已使用空间的百分比
P   — Perm space 区已使用空间的百分比
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

 

常用命令:

 jstat -gcutil java进程号 时间间隔 次数

 S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT

 73.54   0.00  99.04  67.52  98.49    166    0.252     6    0.331    0.583

 73.54   0.00  99.04  67.52  98.49    166    0.252     6    0.331    0.583

 73.54   0.00  99.04  67.52  98.49    166    0.252     6    0.331    0.583

 73.54   0.00  99.04  67.52  98.49    166    0.252     6    0.331    0.583

 73.54   0.00  99.04  67.52  98.49    166    0.252     6    0.331    0.583

 

jstat –gccapacity :可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小

[root@localhost bin]# jstat -gccapacity pid

 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC      PGCMN    PGCMX     PGC       PC     YGC    FGC 

524288.0 524288.0 524288.0 54592.0 52096.0 417600.0  1572864.0  1572864.0  1572864.0  1572864.0 131072.0 262144.0 173120.0 173120.0     26     1

 

NGCMNMinimum new generation capacity (KB).
NGCMXMaximum new generation capacity (KB).
NGCCurrent new generation capacity (KB).
S0CCurrent survivor space 0 capacity (KB).
S1CCurrent survivor space 1 capacity (KB).
ECCurrent eden space capacity (KB).
OGCMNMinimum old generation capacity (KB).
OGCMXMaximum old generation capacity (KB).
OGCCurrent old generation capacity (KB).
OCCurrent old space capacity (KB).
PGCMNMinimum permanent generation capacity (KB).
PGCMXMaximum Permanent generation capacity (KB).
PGCCurrent Permanent generation capacity (KB).
PCCurrent Permanent space capacity (KB).
YGCNumber of Young generation GC Events.
FGCNumber of Full GC Events.

 

jstat -class pid:显示加载class的数量,及所占空间等信息。

实例使用3:

[root@localhost bin]# jstat -class 25917

Loaded  Bytes  Unloaded  Bytes     Time

2629    2916.8       29   24.6     0.90

 

jstat -compiler pid:显示VM实时编译的数量等信息。

实例使用4:

[root@localhost bin]# jstat -compiler 25917

Compiled Failed Invalid   Time   FailedType FailedMethod

     768      0       0   0.70            0

 

jstat -gcnew pid: new对象的信息

[root@localhost bin]# jstat -gcnew 25917

 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU        YGC     YGCT

 64.0    64.0    47.4    0.0     2  15     32.0       704.0    145.7    168    0.254

S0CCurrent survivor space 0 capacity (KB).
S1CCurrent survivor space 1 capacity (KB).
S0USurvivor space 0 utilization (KB).
S1USurvivor space 1 utilization (KB).
TTTenuring threshold.
MTTMaximum tenuring threshold.
DSSDesired survivor size (KB).
ECCurrent eden space capacity (KB).
EUEden space utilization (KB).
YGCNumber of young generation GC events.
YGCTYoung generation garbage collection time.

 

jstat -gcnewcapacity pid: new对象的信息及其占用量

[root@localhost bin]# jstat -gcnewcapacity 25917

 NGCMN  NGCMX   NGC   S0CMX  S0C   S1CMX  S1C   ECMX    EC      YGC   FGC

640.0       4992.0    832.0   64.0       448.0 448.0     64.0   4096.0  704.0  168     6

NGCMN           Minimum new generation capacity (KB). 
NGCMX    Maximum new generation capacity (KB).
NGC    Current new generation capacity (KB).
S0CMXMaximum survivor space 0 capacity (KB).
S0CCurrent survivor space 0 capacity (KB).
S1CMXMaximum survivor space 1 capacity (KB).
S1CCurrent survivor space 1 capacity (KB).
ECMXMaximum eden space capacity (KB).
ECCurrent eden space capacity (KB).
YGCNumber of young generation GC events.
FGCNumber of Full GC Events.

 

jstat -gcold pid: old对象的信息。

[root@localhost bin]# jstat -gcold 25917

   PC       PU        OC          OU       YGC    FGC    FGCT     GCT

 12800.0  12617.6     9504.0      6561.3   169     6    0.335    0.591

 

jstat -gcoldcapacity pid:old对象的信息及其占用量。

[root@localhost bin]# jstat -gcoldcapacity 25917

OGCMN      OGCMX        OGC         OC       YGC   FGC    FGCT     GCT

1408.0     60544.0      9504.0      9504.0   169     6    0.335    0.591

 

jstat -gcpermcapacity pid: perm对象的信息及其占用量。

[root@localhost bin]# jstat -gcpermcapacity 25917

PGCMN      PGCMX       PGC         PC      YGC   FGC    FGCT     GCT

8192.0    65536.0    12800.0    12800.0   169     6    0.335    0.591

 

jstat -printcompilation pid:当前VM执行的信息。

[root@localhost bin]# jstat -printcompilation -h3  25917 1000 5

每1000毫秒打印一次,一共打印5次,还可以加上-h3每三行显示一下标题。

Compiled  Size  Type Method

     788     73    1 java/io/File <init>

     788     73    1 java/io/File <init>

     788     73    1 java/io/File <init>

Compiled  Size  Type Method

     788     73    1 java/io/File <init>

     788     73    1 java/io/File <init>

 

-gcpermcapacity Option

Permanent Generation Statistics
ColumnDescription
PGCMNMinimum permanent generation capacity (KB).
PGCMXMaximum permanent generation capacity (KB).
PGCCurrent permanent generation capacity (KB).
PCCurrent permanent space capacity (KB).
YGCNumber of young generation GC events.
FGCNumber of full GC events.
FGCTFull garbage collection time.
GCTTotal garbage collection time.
基于TROPOMI高光谱遥感仪器获取的大气成分观测资料,本研究聚焦于大气污染物一氧化氮(NO₂)的空间分布与浓度定量反演问题。NO₂作为影响空气质量的关键指标,其精确监测对环境保护与大气科学研究具有显著价值。当前,利用卫星遥感数据结合先进算法实现NO₂浓度的高精度反演已成为该领域的重要研究方向。 本研究构建了一套以深度学习为核心的技术框架,整合了来自TROPOMI仪器的光谱辐射信息、观测几何参数以及辅助气象数据,形成多维度特征数据集。该数据集充分融合了不同来源的观测信息,为深入解析大气中NO₂的时空变化规律提供了数据基础,有助于提升反演模型的准确性与环境预测的可靠性。 在模型架构方面,项目设计了一种多分支神经网络,用于分别处理光谱特征与气象特征等多模态数据。各分支通过独立学习提取代表性特征,并在深层网络中进行特征融合,从而综合利用不同数据的互补信息,显著提高了NO₂浓度反演的整体精度。这种多源信息融合策略有效增强了模型对复杂大气环境的表征能力。 研究过程涵盖了系统的数据处理流程。前期预处理包括辐射定标、噪声抑制及数据标准化等步骤,以保障输入特征的质量与一致性;后期处理则涉及模型输出的物理量转换与结果验证,确保反演结果符合实际大气浓度范围,提升数据的实用价值。 此外,本研究进一步对不同功能区域(如城市建成区、工业带、郊区及自然背景区)的NO₂浓度分布进行了对比分析,揭示了人类活动与污染物空间格局的关联性。相关结论可为区域环境规划、污染管控政策的制定提供科学依据,助力大气环境治理与公共健康保护。 综上所述,本研究通过融合TROPOMI高光谱数据与多模态特征深度学习技术,发展了一套高效、准确的大气NO₂浓度遥感反演方法,不仅提升了卫星大气监测的技术水平,也为环境管理与决策支持提供了重要的技术工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
### ### jstat 命令使用方法及 JVM 状态监控指南 `jstat` 是 JDK 自带的一个命令行工具,用于监控 JVM 的运行状态,尤其是垃圾回收(GC)和类加载等关键指标。它可以帮助开发者实时观察 GC 频率、耗时,检测内存泄漏趋势,并验证 JVM 参数调整的效果[^1]。 #### 基本命令格式 `jstat` 的基本命令格式如下: ```bash jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] ``` - `<option>`:指定要监控的内容,例如 `gc`、`class`、`compiler` 等。 - `<vmid>`:Java 进程的虚拟机 ID,通常为进程 PID。 - `<interval>`:采样间隔时间(单位为毫秒或秒)。 - `<count>`:采样次数。 - `-t`:输出时间戳。 - `-h<lines>`:每 `<lines>` 行输出表头。 #### 常用选项及示例 1. **监控垃圾回收情况** 使用 `-gc` 选项可以查看堆内存各区域(Eden、Survivor、Old)的使用情况以及 GC 的执行次数和耗时。 ```bash jstat -gc 23321 1000 5 ``` 上述命令将每秒输出一次 PID 为 23321 的 Java 进程的 GC 状态,共输出 5 次。输出内容包括: - `S0C/S1C`:Survivor 0/1 区的容量。 - `S0U/S1U`:Survivor 0/1 区的使用量。 - `EC/EU`:Eden 区的容量和使用量。 - `OC/OU`:Old 区的容量和使用量。 - `MC/MU`:元空间(Metaspace)的容量和使用量。 - `YGC/YGCT`:Young GC 的次数和总耗时。 - `FGC/FGCT`:Full GC 的次数和总耗时。 - `GCT`:所有 GC 的总耗时[^1]。 2. **监控类加载状态** 使用 `-class` 选项可以查看类加载的统计信息,包括加载类的数量、卸载类的数量以及类加载耗时。 ```bash jstat -class 23321 ``` 3. **监控编译器状态** 使用 `-compiler` 选项可以查看 JIT 编译器的状态,包括已执行的编译任务数、失败的编译任务数以及编译耗时。 ```bash jstat -compiler 23321 ``` 4. **带时间戳输出** 使用 `-t` 参数可以在输出中添加时间戳,便于分析时间序列数据。 ```bash jstat -gc -t 23321 1000 ``` 5. **控制表头输出频率** 使用 `-h` 参数可以指定每隔多少行输出一次表头,便于在长时间运行的监控中识别数据。 ```bash jstat -gc -h5 23321 1000 ``` #### 监控要素与性能分析 JVM 监控通常包括以下关键要素: - **内存使用情况**:包括堆内存和非堆内存的分配与使用情况。 - **线程状态**:活动线程数、守护线程数等。 - **GC 行为**:各区域的 GC 次数、耗时及频率。 - **CPU 占用率**:Java 进程的 CPU 使用情况。 通过 `jstat` 的输出,可以判断是否存在频繁的 GC(如 `YGC` 或 `FGC` 频繁发生),从而推测是否存在内存泄漏或堆内存配置不合理的问题。此外,通过对比不同时间点的 GC 耗时和内存使用情况,可以验证 JVM 参数调整的效果。 #### 结合其他工具进行综合分析 除了 `jstat`,还可以结合以下工具进行更全面的 JVM 监控与调优: - **`jstack`**:用于分析线程堆栈,定位死锁或线程阻塞问题。 - **`jmap`**:用于生成堆转储快照,分析内存泄漏。 - **`jinfo`**:用于查看和动态修改 JVM 参数。 - **`jconsole` / `jvisualvm`**:图形化工具,提供实时监控和详细分析功能。 通过这些工具的综合使用,开发者可以更深入地理解 JVM 的工作原理,并在实际工作中进行有效的监控和调优,确保 Java 应用的高效运行[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值