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兆字节

元空间容量 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层),Sys(即内核)和用户花费了多少时间
  3. 有多少个GC线程正在工作,并占用了多少时间?
  4. 一个GC事件具有几个子阶段(例如初始标记,清理,备注,并发标记……)。 信息分类不可用。
  5. 每个GC事件回收了多少字节

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

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

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

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

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

相关文章

微软电脑适合什么人用_#微软surface pro使用心得# 大学生挑电脑参考/平板与电脑二合一到底买的是什么...

surface pro6 使用一年体验。可以作为如果要买pro7 的一个参考。(全是我个人的使用体验与心得,非科普与专业,问我专业的问了我也不知道怎么回答)(pro7更加具体的可以去B站看大佬们的开箱)以下是我的个人想法…

linux 运行java jar_linux运行jar包、查看jar包进程、停止jar包

要运行java的项目需要先将项目打包成war包或者jar包,打包成war包需要将war包部署到tomcat服务器上才能运行。而打包成jar包可以直接使用java命令执行。在linux系统中运行jar包主要有以下四种方式。一、java -jar XXX.jar这是最基本的jar包执行方式,但是当…

et超排真正免狗能用版 真正好用的东西_真正合格小户型,收纳都特别能“装”...

原标题:真正合格小户型,收纳都特别能“装”说起来,小户型的生活在近些年来才流行起来,毕竟,房价的日益升高,想在城市有个家的青年们,只能选择小户型。其实,房子虽小,收纳…

java读取文件并显示_JAVA读取本地文件并显示到页面中

javaweb图片的显示RequestMapping(value"showImg")ResponseBodypublic void ShowImg(HttpServletRequest request,HttpServletResponse response) throws IOException{//String imgFile request.getParameter("imgFile"); //文件名// String path UrlUtil…

javafx html5_JavaFX技巧5:可观察

javafx html5即使在整个NSA监视的这段时间,实现JavaFX控件时也要牢记可观察性,这仍然是一个好主意。 与Swing相比,这在JavaFX中很容易实现。 旧时光 来自Swing,我习惯于花费大量精力和时间来使自定义控件变得可观察。 通常需要添…

苹果电脑怎么投屏到电视_tcl电视怎么投屏

除了看电视,现在的智能电视产品还支持手机投屏功能,如果在使用TCL电视,可以借助第三方软件实现手机投屏的功能,下面就为大家介绍一下,tcl电视怎么投屏。tcl电视怎么投屏步骤1、打开电视自带的应用商店。步骤2、搜索LBT…

重复码

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

sap tcode 功能对照表_Python for Ev3练习amp;Minstorms对照表02

大家好。我是欧文今天给大家分享python for Ev3的练习代码以及python中对应的Ev3Minstorms软件模块对照表。这个练习题都相对基础。主要是用来练习用的。给大家分享的代码也是比较简单的,不过实现方法都是不唯一的。主要的目的是练习和学习。练习代码如下&#xff1…

大楼通信综合布线系统_某办公大楼综合布线系统设计实例,小白可以借鉴一下,大神请绕路...

xxx办公大楼综合布线系统是一个包括内部数据语音通信、外线电话线路接入管理系统、办公用强电电气配电系统、电缆电视系统等内部的复合布线系统,在会议室还有一个小型的供音响系统设备使用的专用布线系统。各子系统的基本情况及主功能如下:强电配电系统&…

java8日期_Java8日期与时间

我们知道Java8一个比较大的改动就是引入了新的表示日期和时间的API,还是很有必要抽点时间了解一下基本的用法。Java8之前的问题在讨论Java8的API之前,我们先看看原来API的问题。我们知道Java8之前只有java.util.Date和java.util.Calendar来表示和处理时间…

javaone_为JavaOne 2014做好准备!

javaone保持那个想法! 是的,我希望我能在Java One 2014上做演讲-但我现在只值得在梦里做到这一点! 但是,没有什么阻止我遵循Java One并跟踪有关我最喜欢的主题的会话/对话。 我希望Oracle能够像我们2013年版那样,像我…

代码逻辑分析_双11模块79.34%的前端代码是怎样智能生成的?

作者|妙净、波本最近几年,AI 渗透到开发领域的方方面面。在前端领域,设计稿生成代码(简称 D2C)就是一个例子。其目标在于通过 AI 助力前端提效升级,杜绝简单重复性的工作内容。今年“双十一”,阿里的 D2C 覆盖了天猫淘…

datax导入MySQL报错_导入MySQL方法对比

使用datax导入1、使用自增id记录数耗时(秒)TPS42488823471224433404813403882722、不使用自增id,使用雪花算法生成id后导入记录数耗时(秒)TPS424888268062483340481365555096使用MySQL命令load导入1、csv带雪花id> select * from l_wish_log_snow_copy into outf…

项目织机

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

java mybatis 教程_(整理)MyBatis入门教程(一)

本文转载:本人文笔不行,根据上面博客内容引导,自己整理了一些东西首先给大家推荐几个网页:MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBa…

2020版北大中文核心期刊目录_收藏备用最新版:《中文核心期刊要目总览》北大中文核心期刊目录...

《中文核心期刊要目总览》是学术界对某类期刊的定义,一种期刊等级的划分。它的对象是,中文学术期刊,是根据期刊影响因子等诸多因素所划分的期刊。中文核心期刊是北京大学图书馆联合众多学术界权威专家鉴定,目前受到了学术界的广泛…

java中多个输入框搜索_如何在一个搜索框中输入多个字段的值进行查询?

搜索export default {data() {return {input: ,//用来接受input框的值name:,// 用来存储foreach的对应的值id:,// 用来存储foreach的对应的值dq:// 用来存储foreach的对应的值}},methods:{submit(){console.log(this.input);// 打印let str this.input;// 声明变量接受input的…

fedora如何隐藏顶部状态栏_藏在 iOS 13 里的 9 个隐藏小技巧

正文共:1797字 10图1.从控制中心直接选择无线网络和蓝牙配件苹果首次在 iOS 7 中加入了控制中心,允许用户进行一些快速操作,例如打开/关闭飞行模式、打开/关闭蜂窝网络、打开/关闭 Wi-Fi 等。但很多控制都只停留在一级菜单,你只能…

摇篮配置

在这篇文章中,我们将介绍有关Gradle配置的综合文章。 1.技术 Gradle是用于自动任务管理的开源构建工具。 它基于Apache Ant,Apache Maven的概念。 Gradle是使用Groovy语言开发的。 Gradle是使用基于Groovy的领域特定语言(DSL)开发…

java的封装性的优点_18、Java的三大特性之封装

Java的三大特性java是一个面向对象的语言,所以java也有面向对象语言的三大特性:继承,封装,多态,任何一个java项目,都会用到这三种特性,所以掌握好这三大特性非常的重要。封装我们为什么要使用封…