jvm监控之jstat

2024-04-19 09:58
文章标签 java jvm 监控 jstat

本文主要是介绍jvm监控之jstat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

jstat

用来获取运行中的jvm进程的实时内存使用情况,性能统计信息,可以很直观的查看到jvm各个分区的内存现状,是监控jvm的常用命令。

常用指令:

#查看gc容量jstat -gccapacity pid 1000 10#查看gcjstat -gc pid 1000 2#查看各空间利用率
jstat -gcutil pid 1000 2#查看元空间容量
jstat -gcmetacapacity pid

使用方法

jstat [ generalOption | outputOptions vmid [ interval [s | ms] [ count ]]

generalOption

单个通用命令行选项-help或-options。

outputOptions

一个或由单个的多输出选项statOption,加上任何的-t-h-J选项。即:-statOption -t -h n -J

-t:打印列表第一列添加时间戳,时间戳的值是从指定进程开始时间起算的

-h n:每隔n次采样,输出一次表头

-J javaOption:指定jstat命令的java指令

-statOption stat输出指令,包括:

class:显示有关类加载器行为的统计信息。compiler:显示有关Java HotSpot VM实时编译器行为的统计信息。gc:显示有关垃圾回收堆行为的统计信息。gccapacity:显示有关代的容量及其相应空间的统计信息。gccause:显示有关垃圾收集统计信息(-gcutil与之相同)的摘要,以及最后一个和当前(适用时)垃圾收集事件的原因。gcnew:显示新生代行为的统计信息。gcnewcapacity:显示有关新生代及其相应空间大小的统计信息。gcold:显示有关老年代和元空间统计信息行为的统计信息。gcoldcapacity:显示有关老年代大小的统计信息。gcmetacapacity:显示有关元空间大小的统计信息。gcutil:显示有关垃圾回收统计信息的摘要。printcompilation:显示Java HotSpot VM编译方法统计信息。

 

每一个statOption的统计信息:

1. -class  类加载器统计信息

  • Loaded:加载的类数。
  • Bytes:加载的kB数。
  • Unloaded:卸载的类数。
  • Bytes:卸载的Kbytes数。
  • Time:执行类加载和卸载操作所花费的时间。

2. -compiler Java HotSpot VM即时编译器统计信息。

  • Compiled:执行的编译任务数。
  • Failed:编译任务失败次数。
  • Invalid:已失效的编译任务数。
  • Time:执行编译任务所花费的时间。
  • FailedType:编译上次失败编译的类型。
  • FailedMethod:上次失败编译的类名和方法。

3.-gc 垃圾收集堆统计信息。

  • S0C:当前幸存者空间0容量(kB)。
  • S1C:当前幸存者空间1容量(kB)。
  • S0U:幸存者空间0利用率(kB)。
  • S1U:幸存者空间1利用率(kB)。
  • EC:当前的伊甸园空间容量(kB)。
  • EU:伊甸园空间利用率(kB)。
  • OC:当前旧空间容量(kB)。
  • OU:旧空间利用率(kB)。
  • MC:元空间容量(kB)。
  • MU:Metacspace利用率(kB)。
  • CCSC:压缩类空间容量(kB)。
  • CCSU:使用的压缩类空间(kB)。
  • YGC:新生代垃圾收集活动的数量。
  • YGCT:新生代垃圾收集时间。
  • FGC:完整GC事件的数量。
  • FGCT:完全垃圾收集时间。
  • GCT:垃圾收集总时间。

4.-gccapacity 内存池生成和空间容量。

  • NGCMN:最小新生代容量(kB)。
  • NGCMX:最大新生代容量(kB)。
  • NGC:当前的新生容量(kB)。
  • S0C:当前幸存者空间0容量(kB)。
  • S1C:当前幸存者空间1容量(kB)。
  • EC:当前的伊甸园空间容量(kB)。
  • OGCMN:最小老年代容量(kB)。
  • OGCMX:最大老年代容量(kB)。
  • OGC:当前的老年代容量(kB)。
  • OC:当前老年代空间容量(kB)。
  • MCMN:最小元空间容量(kB)。
  • MCMX:最大元空间容量(kB)。
  • MC:元空间容量(kB)。
  • CCSMN:压缩类空间最小容量(kB)。
  • CCSMX:压缩类空间最大容量(kB)。
  • CCSC:压缩类空间容量(kB)。
  • YGC:新生代GC事件的数量。
  • FGC:完整GC事件的数量。

5.-gcutil 垃圾收集统计摘要。

  • S0:幸存者空间0利用率占空间当前容量的百分比。
  • S1:幸存者空间1占空间当前容量的百分比。
  • E:伊甸园空间利用率占空间当前容量的百分比。
  • O:老年代空间利用率占空间当前容量的百分比。
  • M:元空间利用率占空间当前容量的百分比。
  • CCS:压缩的类空间利用率百分比。
  • YGC:新生代GC事件的数量。
  • YGCT:新生代垃圾收集时间。
  • FGC:完整GC事件的数量。
  • FGCT:完全垃圾收集时间。
  • GCT:垃圾收集总时间。

6.-gccause  与-gcutil相同的垃圾收集统计信息摘要,但包括上次垃圾收集事件的原因以及(如果适用)当前垃圾收集事件的原因。除了列出-gcutil的列之外,此选项还添加以下列。

  • LGCC:上次垃圾回收的原因
  • GCC:当前垃圾回收的原因

7.-gcnew 新生代统计数据。

  • S0C:当前幸存者空间0容量(kB)。
  • S1C:当前幸存者空间1容量(kB)。
  • S0U:幸存者空间0利用率(kB)。
  • S1U:幸存者空间1利用率(kB)。
  • TT:Tenuring threshold 晋升阈值。
  • MTT:Maximum tenuring threshold最大晋升阈值。
  • DSS:期望的幸存者大小(kB)。
  • EC:当前的伊甸园空间容量(kB)。
  • EU:伊甸园空间利用率(kB)。
  • YGC:新生代GC事件的数量。
  • YGCT:新生代垃圾收集时间。

8. -gcnewcapacity 新生代空间大小统计。

  • NGCMN:最小新生代容量(kB)。
  • NGCMX:最大新生代容量(kB)。
  • NGC:当前的新生代容量(kB)。
  • S0CMX:最大幸存者空间0容量(kB)。
  • S0C:当前幸存者空间0容量(kB)。
  • S1CMX:最大幸存者空间1容量(kB)。
  • S1C:当前幸存者空间1容量(kB)。
  • ECMX:最大伊甸园空间容量(kB)。
  • EC:当前的伊甸园空间容量(kB)。
  • YGC:年轻一代GC事件的数量。
  • FGC:完整GC事件的数量。

9.-gcold  老年代和元空间行为统计。

  • MC:元空间容量(kB)。
  • MU:元空间利用率(kB)。
  • CCSC:压缩类空间容量(kB)。
  • CCSU:使用的压缩类空间(kB)。
  • OC:当前老年代空间容量(kB)。
  • OU:老年代空间利用率(kB)。
  • YGC:年轻代GC事件的数量。
  • FGC:完整GC事件的数量。
  • FGCT:完全垃圾收集时间。
  • GCT:垃圾收集总时间。

10.-gcoldcapacity 老年代大小统计

  • OGCMN:最小旧代容量(kB)。
  • OGCMX:最大旧代容量(kB)。
  • OGC:当前的旧代容量(kB)。
  • OC:当前旧空间容量(kB)。
  • YGC:新生代GC事件的数量。
  • FGC:完整GC事件的数量。
  • FGCT:完全垃圾收集时间。
  • GCT:垃圾收集总时间。

11. -gcmetacapacity 元空间大小统计。

  • MCMN:最小元空间容量(kB)。
  • MCMX:最大元空间容量(kB)。
  • MC:元空间容量(kB)。
  • CCSMN:压缩类空间最小容量(kB)。
  • CCSMX:压缩类空间最大容量(kB)。
  • YGC:新生代GC事件的数量。
  • FGC:完整GC事件的数量。
  • FGCT:完全垃圾收集时间。
  • GCT:垃圾收集总时间。

12.-printcompilation Java HotSpot VM编译方法统计。

  • Compiled:最近编译的方法执行的编译任务数。
  • Size:最近编译的方法的字节代码的字节数。
  • Type:最近编译的方法的编译类型。
  • Method:标识最近编译的方法的类名和方法名。类名使用斜杠(/)代替点(。)作为名称空间分隔符。方法名称是指定类中的方法。这两个字段的格式与HotSpot -XX:+PrintCompilation选项一致。

VMID(Virtual Machine Identifier)

指向目标JVM的虚拟机标识符。一般语法对应于URI的语法如下:

[protocol:][//]lvmid[@hostname[:port]/servername]
  • protocol:  通信协议。如果省略协议值并且未指定主机名,则默认协议是特定于平台的优化本地协议。如果省略协议值并指定了主机名,则默认协议为rmi。
  • lvmid:  目标JVM的本地虚拟机标识符。即进程id/pid。
  • hostname:  指示目标主机的主机名或IP地址。如果省略hostname值,则目标主机是本地主机
  • port:  用于与远程服务器通信的默认端口。如果省略hostname值或协议值指定优化的本地协议,则忽略端口值。否则,port参数的处理是特定于实现的。对于默认rmi协议,端口值指示远程主机上rmiregistry的端口号。如果省略端口值并且协议值指示rmi,则使用默认的rmiregistry端口(1099)。
  • servername:  servername参数的处理取决于实施。对于优化的本地协议,将忽略此字段。对于rmi协议,它表示远程主机上的RMI远程对象的名称。

interval [s|ms]

采样间隔:单位为秒(s)或毫秒(ms),默认单位是毫秒,必须是正整数。指定时,该jstat命令会在每个间隔生成其输出。

count

统计次数

 

 

 

 

这篇关于jvm监控之jstat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917227

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖