jstat命令介绍

jstat:查看JVM统计信息

  • 一 基本情况
  • 二 基本语法
    • 2.1 option参数
      • 1. 类装载相关的:
      • 2. 垃圾回收相关的
        • `-gc`:显示与GC相关的堆信息。包括Eden区、两个Survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息。
        • `-gccapacity`:显示内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间。
        • `-gcutil`:显示内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比。
        • `-gccause`:与-gcutil功能一样,但是会额外输出导致最后一次或当前正在发生的GC产生的原因。
        • `-gcnew`:显示新生代GC状况
        • `-gcnewcapacity`:显示内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间
        • `-geold`:显示老年代GC状况
        • `-gcoldcapacity`:显示内容与-gcold基本相同,输出主要关注使用到的最大、最小空间
        • `-gcpermcapacity`:显示永久代使用到的最大、最小空间。
      • 3. **JIT相关的:**
        • `-compiler`:显示JIT编译器编译过的方法、耗时等信息
        • `-printcompilation`:输出已经被JIT编译的方法 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/82a18850bf744075b573b82cea4e99d3.png)
    • 2.2 interval参数
    • 2.2 count参数
    • 2.3 -t参数
    • 2.4 -h参数
  • 三 补充

一 基本情况

jstat(JVM Statistics Monitoring Tool):用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。 在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。常用于检测垃圾回收问题以及内存泄漏问题。 官方文档

二 基本语法

它的基本使用语法为:

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

查看命令相关参数:

jstat -h 或 jstat -help

2.1 option参数

选项option可以由以下值构成。

1. 类装载相关的:

  • -class:显示ClassLoader的相关信息:类的装载、卸载数量、总空间、类装载所消耗的时间等
    在这里插入图片描述

2. 垃圾回收相关的

-gc:显示与GC相关的堆信息。包括Eden区、两个Survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息。

在这里插入图片描述在这里插入图片描述

新生代相关

  • S0C是第一个幸存者区的大小(字节)
  • S1C是第二个幸存者区的大小(字节)
  • S0U是第一个幸存者区已使用的大小(字节)
  • S1U是第二个幸存者区已使用的大小(字节)
  • EC是Eden空间的大小(字节)
  • EU是Eden空间已使用大小(字节)

老年代相关

  • OC是老年代的大小(字节)
  • OU是老年代已使用的大小(字节)

方法区(元空间)相关

  • MC是方法区的大小
  • MU是方法区已使用的大小
  • CCSC是压缩类空间的大小
  • CCSU是压缩类空间已使用的大小

其它

  • YGC是指从应用程序启动到采样时young gc次数
  • YGCT是指从应用程序启动到采样时young gc消耗的时间(秒)
  • FGC是指从应用程序启动到采样时full gc次数
  • FGCT是指从应用程序启动到采样时full gc消耗的时间(秒)
  • GCT是指从应用程序启动到采样时gc的总时间
-gccapacity:显示内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间。
-gcutil:显示内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比。

在这里插入图片描述

-gccause:与-gcutil功能一样,但是会额外输出导致最后一次或当前正在发生的GC产生的原因。

在这里插入图片描述

-gcnew:显示新生代GC状况

在这里插入图片描述

-gcnewcapacity:显示内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间

在这里插入图片描述

-geold:显示老年代GC状况

在这里插入图片描述

-gcoldcapacity:显示内容与-gcold基本相同,输出主要关注使用到的最大、最小空间

在这里插入图片描述

-gcpermcapacity:显示永久代使用到的最大、最小空间。

3. JIT相关的:

-compiler:显示JIT编译器编译过的方法、耗时等信息

在这里插入图片描述

-printcompilation:输出已经被JIT编译的方法 在这里插入图片描述

2.2 interval参数

用于指定输出统计数据的周期,单位为毫秒。即:查询间隔
每隔一秒打印一次数据

在这里插入图片描述

2.2 count参数

用于指定查询的总次数
每隔一秒打印一次数据,共打印5次
在这里插入图片描述

2.3 -t参数

可以在输出信息前加上一个Timestamp列,显示程序的运行时间。单位:秒
程序的运行时间在这里插入图片描述
经验
我们可以比较 Java 进程的启动时间以及总 GC 时间(GCT 列),或者两次测量的间隔时间以及总 GC 时间的增量,来得出 GC 时间占运行时间的比例。如果该比例超过 20%,则说明目前堆的压力较大;如果该比例超过 90%,则说明堆里几乎没有可用空间,随时都可能抛出 OOM 异常。
在这里插入图片描述

2.4 -h参数

可以在周期性数据输岀时,输出多少行数据后输出一个表头信息

h表示head表头,4表示每隔4条数据打印一个表头

在这里插入图片描述

三 补充

jstat还可以用来判断是否出现内存泄漏

第1步:在长时间运行的 Java 程序中,我们可以运行jstat命令连续获取多行性能数据,并取这几行数据中 OU 列(即已占用的老年代内存)的最小值。

第2步:然后,我们每隔一段较长的时间重复一次上述操作,来获得多组 OU 最小值。如果这些值呈上涨趋势,则说明该 Java 程序的老年代内存已使用量在不断上涨,这意味着无法回收的对象在不断增加,因此很有可能存在内存泄漏。

JVM之GC 调优基础知识(一)

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

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

相关文章

【C++】C++-机房收费管理系统(源码+注释)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

LeetCode之最长回文子串

1.题目链接 5. 最长回文子串 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/longest-palindromic-substring/description/ 2.题目解析 对于这道题目我们可以使用动态规划的思路来求解&#xff0c;具体思路是&#xff0c;对于一个长度大于2的子串&…

生成式信息检索(问答系统与信息检索的进步)

文章目录 什么是问答系统&#xff08;Question Answering Systems&#xff09;检索系统的演变经典检索系统“Term” 文档搜素的最小单位倒排索引词嵌入的出现预训练语言模型 用于问答的语言模型设计方案选择&#xff1a;封闭式与开放式问答系统对比方案A&#xff1a;封闭式生成…

【干货】一文带你看懂什么是渠道分销?如何管理渠道分销

在当今竞争激烈的市场环境中&#xff0c;企业想要扩大市场份额、提高产品或服务的可见度&#xff0c;有效的渠道分销策略是关键。 什么是渠道分销&#xff1f; 渠道分销&#xff0c;简而言之&#xff0c;是指企业利用中间商&#xff08;如经销商、代理商、零售商等&#xff0…

springboot解压文件流zip压缩包

springboot解压文件流zip压缩包 原始文件存储的地方&#xff1a; 需要在当前目录下解压该文件&#xff0c;如下图&#xff1a; 代码示例&#xff1a; private Result<String> getLocationGuideLayerName(YbYstbtqTaskResolveParam params, String fishnetLayerName)…

华为od100问持续分享-1

我是一名软件开发培训机构老师&#xff0c;我的学生已经有上百人通过了华为OD机试&#xff0c;学生们每次考完试&#xff0c;会把题目拿出来一起交流分享。 重要&#xff1a;2024年5月份开始&#xff0c;考的都是OD统一考试&#xff08;D卷&#xff09;&#xff0c;题库已经整…

入门PHP就来我这(高级)24 ~ Session判断用户登录

有胆量你就来跟着路老师卷起来&#xff01; -- 纯干货&#xff0c;技术知识分享 路老师给大家分享PHP语言的知识了&#xff0c;旨在想让大家入门PHP&#xff0c;并深入了解PHP语言。 上一篇我们介绍了Session管理部分的概念&#xff0c;本文通过session来改写一些用户登录&…

一致性Hash问题及解决方案

Hash算法的应用场景 请求的负载均衡 Nginx的ip_hash策略可以在客户端ip不发生变化的情况下&#xff0c;将其发出的请求始终路由到同一个目标服务器上&#xff0c;实现会话粘滞&#xff0c;避免处理session共享问题。 如果没有ip_hash策略&#xff0c;可以通过维护一张映射表的…

常用包管理工具(apk、apt、yum)常用命令

apk 包管理工具apk是Alpine Linux中使用广泛的一个工具&#xff0c;用于管理软件包的安装、更新、卸载等操作。以下是一些常用的apk命令及其解释&#xff1a; 1.更新 apk update&#xff1a;从远程镜像源更新本地仓库中的所有软件包索引apk upgrade&#xff1a;升级本地已安装…

ts实现将相同类型的数据通过排序放在一起

看下效果&#xff0c;可以将相同表名称的字段放在一起 排序适用于中英文、数字 // 排序 function sortByType(items: any) {// 先按照类型进行排序items.sort((a: any, b: any) > {if (a.label < b.label) return -1;if (a.label > b.label) return 1;return 0;});r…

鸿蒙语言基础类库:【@ohos.application.testRunner (TestRunner)】 测试

TestRunner TestRunner模块提供了框架测试的能力。包括准备单元测试环境、运行测试用例。 如果您想实现自己的单元测试框架&#xff0c;您必须继承这个类并覆盖它的所有方法。 说明&#xff1a; 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-…

编程语言与数据结构的关系:深度解析与探索

编程语言与数据结构的关系&#xff1a;深度解析与探索 在编程的世界中&#xff0c;编程语言和数据结构是两个不可或缺的元素。它们之间既相互依存&#xff0c;又各自独立&#xff0c;共同构成了编程的核心。本文将深入探索编程语言与数据结构之间的复杂关系&#xff0c;从四个…

[氮化镓]Kevin J. Chen组新作—肖特基p-GaN HEMTs正栅ESD机理研究

这篇文章是发表在《IEEE Electron Device Letters》上的一篇关于Schottky型p-GaN栅极高电子迁移率晶体管&#xff08;HEMTs&#xff09;的正向栅极静电放电&#xff08;ESD&#xff09;机理研究的论文。文章由Jiahui Sun等人撰写&#xff0c;使用了基于碳化硅&#xff08;SiC&a…

8626 原子量计数

分析&#xff1a; 1. **读取输入**&#xff1a;首先&#xff0c;我们需要读取输入中的第一行&#xff0c;了解有多少个化学式需要处理。之后&#xff0c;对于每个化学式&#xff0c;我们逐行读取并进行处理。 2. **解析化学式**&#xff1a;对于每个化学式&#xff0c;我们需要…

8627 数独

为了判断数独解是否合法&#xff0c;我们需要遵循以下步骤&#xff1a; 1. **检查每一行**&#xff1a;确保1到9每个数字在每一行中只出现一次。 2. **检查每一列**&#xff1a;确保1到9每个数字在每一列中只出现一次。 3. **检查每个3x3的宫**&#xff1a;确保1到9每个数字在…

细胞通讯之cellchat的流程

愿武艺晴小朋友一定得每天都开心 在细胞通讯的领域内有cellphoneDB、cellchat、iTALK等多种cell-cell communication的工具; 其中cellchat,我觉得它比较的亲民和好看吧^_^ cellchat <- createCellChat(Matrix(health@assays$RNA$data,sparse = T), #用于seurat.v5对象 …

文件类:如何将excel文件转为csv文件(且保留时间格式)?

最近有个场景&#xff0c;在ftp服务器上&#xff0c;读取csv文件并入库&#xff0c;但是客户提供的一部分文件却是xls文件&#xff0c;就得搞个将excel转为csv文件的方法&#xff0c;话不多说直接开干。 方法 public static void convertExcelToCSV(String excelFilePath, Str…

掌握axios与Vue 3:构建高效HTTP请求的终极指南

引言 axios作为一个广泛使用的JavaScript库&#xff0c;因其简洁的API、强大的功能和良好的浏览器兼容性&#xff0c;成为了许多前端开发者在Vue 3项目中的首选。 axios简介 axios是什么&#xff1f; axios是一个基于Promise的HTTP客户端&#xff0c;用于浏览器和node.js环境…

【视频】R语言广义加性模型GAMs非线性效应、比较分析草种耐寒性实验数据可视化

全文链接&#xff1a;https://tecdat.cn/?p36979 原文出处&#xff1a;拓端数据部落公众号 广义加法模型&#xff08;Generalized Additive Models, GAMs&#xff09;作为一种高度灵活的统计工具&#xff0c;显著扩展了广义线性模型&#xff08;Generalized Linear Models, …

我被手机所伤,竟如此憔悴。

临睡前&#xff0c;刚刷完小视频&#xff0c;感觉好无聊。一阵阵空虚感袭来。看看时间&#xff0c;哦&#xff0c;原来我下班后一直从6点刷视频到11点。 哎&#xff0c;太空虚了&#xff0c;又马上要睡觉了&#xff0c;为什么会这么难受呢?明明我大学&#xff0c;高中&#x…