jstat分析_jstat –分析

jstat分析

jstat是一个简单的实用工具,在JDK中存在,用于提供与JVM性能相关的统计信息,例如垃圾收集,编译活动。 jstat的主要优势在于,它可以在运行JVM且无需任何先决条件的情况下动态捕获这些指标。 这是什么意思? 例如,如果要捕获与垃圾回收相关的统计信息,则需要在启动JVM之前传递以下参数:

 -Xlog:gc*:file={file-path} 

此参数将启用GC日志并将其打印在指定的文件路径中。 假设您尚未传递此参数,那么将不会生成与GC相关的统计信息。 这是jstat可以派上用场的地方。 您可以动态地连接到JVM并捕获GC,编译相关的统计信息如下所示。

如何启动jstat?

执行以下命令。 这是启动jstat的简单选项。

 jstat -gc -t 11656 10000 30 

-gc :将显示与垃圾收集相关的统计信息

自JVM启动以来的-t时间戳将被打印

11656:目标JVM进程ID

10000:每10,000毫秒(即10秒)将打印一次统计信息。

30 :将打印30次迭代的统计信息。 因此,以上选项将导致JVM打印指标300秒(即10秒x 30次迭代)。

(请注意,除了-gc之外,您还可以传递其他各种选项来生成不同的数据集。有关不同选项的更多详细信息,请参见此处 。)

jstat生成的数据

当使用上述选项启动jstat时,将生成以下输出:

图:jstat输出

时间戳记-自目标JVM启动时间以来的时间(以秒为单位)。

S0C –幸存者0区域的容量,以KB为单位

S1C –幸存者1区域的容量,以KB为单位

S0U –幸存者0区域使用的空间以KB为单位

S1U –幸存者1区域以KB为单位使用空间

EC –伊甸园地区容量(KB)

欧盟–伊甸园地区的已利用空间(以KB为单位)

OC –旧区域容量(KB)

OU –旧区域的已利用空间,以KB为单位

MC –元空间区域容量,以KB为单位

MU –元空间区域使用的空间以KB为单位

CCSC –压缩类空间区域的容量,以KB为单位

CCSU –压缩类空间区域以KB为单位使用空间

YGC –迄今为止发生的年轻GC事件的数量

YGCT –到目前为止,年轻GC花费的时间

FGC –迄今为止已发生的完全GC事件的数量

FGCT –到目前为止已花费的完整GC时间

GCT –到目前为止所花费的GC时间总量(基本上是YGCT + FGCT)

如何解释jstat输出?

有了此信息,让我们尝试解释上述示例中jstat工具打印的第一行:

图:jstat输出的第一行
时间戳记

自JVM启动以来的时间(以秒为单位)

= 164.9秒
年轻一代的能力

年轻一代由幸存者0,幸存者1,伊甸园地区组成。因此,容量为:

S0C + S1C + EC

= 116224.0 + 116224.0 + 116736.0

= 349184 kb

= 341 mb

年轻一代利用尺寸

S0U + S1U +欧盟

= 0 + 1520 + 68761.8

= 70281.8 kb

= 68.63 mb

老一代容量 超频 = 431616 kb

= 421.5 mb

上一代利用尺寸

OU

= 280502.5 kb

= 273.93 mb

元空间容量 MC

= 32384 kb

= 31.62 mb

元空间利用的大小 = 31155.5 kb

= 30.42mb

年轻GC计数

青年会

= 29

在Young GC中花费的时间 青年会

= 0.836秒

在GC中花费的总时间 GCT = 2.27秒

分析jstat输出的工具

jstat的挑战之一是您需要手动分析生成的统计信息。 正如您看到的那样,仅了解/解释一行内容将花费很长时间,这将很繁琐。 您可以使用GCeasy工具,该工具可以解析jstat输出并生成有洞察力的图形和指标。 这是GCeasy通过分析上述jstat输出生成的jstat分析报告 。

jstat的局限性

jstat有某些限制:

(一个)。 jstat没有提供有关GC活动的丰富详细信息。 它仅提供足够的信息。 来自jstat的示例,您将不知道:

  1. 如果一次采样中报告了多个GC事件 ,我们将不知道每个GC事件的暂停时间是多少。
  2. 用户(即Java层),系统(即内核)和用户花费了多少时间
  3. 有多少个GC线程正在工作,并占用了多少时间?
  4. 一个GC事件具有几个子阶段(例如初始标记,清理,备注,并发标记……)。 信息分类不可用。
  5. 每个GC事件回收了多少字节

(b)。 有时,jstat报告的数据也会产生误导 。

如果您想进行准确的GC分析,GC日志是更可靠的方法。

翻译自: https://www.javacodegeeks.com/2019/11/jstat-analysis.html

jstat分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle中execute函数,oracle Execute Immediate(sql语句)

慕尼黑的夜晚无繁华Example 1:Output:ABCDECLARE TYPE var_typ IS TABLE OF VARCHAR2(4000);cVars var_typ;cVar VARCHAR2(4000);BEGINEXECUTE IMMEDIATE SELECT A cc FROM dualUNIONSELECT B cc FROM dualUNIONSELECT C cc FROM dual BULK COLLECT INTO cVars; FOR i IN 1 .…

java之数组

一、声明数组 数组是引用类型,声明数组并没有分配空间,则该数组变量的值为null。 类型[] 数组名; 如:double[] data; 二、创建数组 类型[] 数组名new 类型[长度]; 数组创建,数组里面的元素会被赋值,数值型基本数据…

java集合——集合框架

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——集合框架 的相关知识; 【1】集合框架 1.1) java集合类库构成了集合类的矿建, 它为集合的实现者定义了大量的接口…

oracle密码不能重复用_重复码

oracle密码不能重复用介绍 在我们的Java应用程序中复制/粘贴代码通常不好,但是有时这是不可避免的。 例如,项目License3j在Feature类中为其支持的每种XXX类型提供了一个isXXX方法。 在这种情况下,我们做不到写 public boolean isBinary() { r…

oracle rman 用户,对Oracle数据库进行RMAN备份的Oracle数据库用户权限

在Oracle 12版本或者更高版本,Oracle备份用户需要具有SYSDBA或者SYSBACKUP权限在Oracle 11(包括11版本)以前,Oracle备份用户需要具有SYSDBA权限创建及授权用户权限命令示例如下:SQL>create user backupuser identified by oracle;SQL>g…

java之类

一、构造方法1)构造方法具有与类的相同名字2)构造方法没有返回值,甚至连void都没有3)创建新对象使用new,构造方法的作用就是初始化对象。格式为: [可见修饰符] 类名(参数表){}例如:public Myclass(){}普通方法: p…

pmml_再访PMML

pmml嗨伙计! 从今年年初开始,就有了重新设计Drools PMML模块的计划。 在这篇文章中,我将描述我们将如何处理它,目前的状态,未来发展的想法等,等等……敬请期待! 背景 PMML是一个标准&#xff…

java集合——视图与包装器

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——视图与包装器 的相关知识; 0.2) for full source code , please visit https://github.com/pacosonTang/core-java-volume/b…

php把表单转为json保存,javascript – 使用jquery将表单数据保存到本地json文件中

我有一个带有一些输入字段的基本表单.我想在提交表单时将表单数据保存到json文件中.json文件中保存数据的格式应如下所示.[{"title":"some text","description":"some text","info":"some text","username&q…

java之包装类与BigInteger、BigDecimal

一、包装类 (1)包装类与原类型 Integer int 的包装类 Boolean boolean 的包装类 Character char的包装类 Double double的包装类 Float float 的包装类 Byte …

哈希值 哈希表_哈希杰森

哈希值 哈希表我最近写了一个简单的库,可预测地对json进行哈希处理 。 该实用程序基于出色的Jackson Json解析库构建 问题 我需要从相当大的基于json的内容生成的哈希值,以便稍后确定该内容是否发生了更改。 将json视为字符串不是格式化的选项&#xf…

新浪微博搜索php待遇,新浪微博面试

PHP技术基础1、合并数据的函数。我当时回答的是array_merge(),array_combine()(注意与前者的区分);当时面试官告诉我还可以使用 加号()2,判断一个IP地址是否合法。只让说一下思路:(1)用点分割.,$arrIp explore();(2)判…

java集合——集合与数组间的转换+算法

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——集合与数组间的转换算法 的相关知识; 0.2) for full source code , please visit https://github.com/pacosonTang/core-jav…

java之String

一、String类的特性 String对象是不可变的,字符串一旦创建,就不可以改变。二、构造字符串字符串直接量String anew String("字符串直接量"); 字符数组String bnew String(chars);字符串直接量赋值,java把字符串直接量看作String对象…

java记录目录树_Java记录

java记录目录树https://openjdk.java.net/jeps/359概述了Java的新功能,该功能可能会/将在某些将来的Java版本中实现。 JEP建议使用一种新的“类别”:记录。 JEP中的示例内容如下: record Range( int lo, int hi) { public Range { if (lo >…

java集合——遗留的集合

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——遗留的集合 的相关知识; 0.2) for full source code , please visit https://github.com/pacosonTang/core-java-volume/blo…

oracle 扩展分区,Oracle 在线扩展分区

在对Oracle分区表操作是,当一个分区已经有了最大的分区,如何再次扩展分区呢?简单的方式是先删除最大分区,然后添加需要的分区在对Oracle分区表操作是,当一个分区已经有了最大的分区,如何再次扩展分区呢&…

java之StringBuider与StringBuffer

一、StringBuider与StringBuffer StringBuider与StringBuffer类比String更加灵活,只要使用字符串的地方,都可以使用StringBuider与StringBuffer类。三者的共同之处都是 final 类,不允许被继承,这主要是从性能和安全性上考虑的&…

织机原理_项目织机

织机原理为什么为什么? Java 8流背后的驱动程序之一是并发编程。 在流管道中,指定要完成的工作,然后任务将自动分配到可用处理器上: var result myData.parallelStream().map(someBusyOperation).reduce(someAssociativeBinOp)…

java集合——java.util.Properties类

【0】README 0.1)以下全文转自 :  http://trans.blog.51cto.com/503170/110227/ 【1】认识properties文件 1、 properties文件是一个文本文件2、 properties文件的语法有两种,一种是注释,一种属性配置。 注 释:前…