JVM笔记-常用命令

1、jstat

jstat是一个极强的监视JVM的工具,可以用来监视JVM的各种堆和非堆的大小以及内存使用量。

Usage: jstat -help|-options
       jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

jstat的常用用法如图所示,jstat对应两种操作。
一是:jstat -help可以查看jstat的使用说明。

[root@iZuf68iyy7ylg8wcvkpzq6Z ~]# jstat -help
Usage: jstat -help|-options
       jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

Definitions:
  <option>      An option reported by the -options option
  <vmid>        Virtual Machine Identifier. A vmid takes the following form:
                     <lvmid>[@<hostname>[:<port>]]
                Where <lvmid> is the local vm identifier for the target
                Java virtual machine, typically a process id; <hostname> is
                the name of the host running the target Java virtual machine;
                and <port> is the port number for the rmiregistry on the
                target host. See the jvmstat documentation for a more complete
                description of the Virtual Machine Identifier.
  <lines>       Number of samples between header lines.
  <interval>    Sampling interval. The following forms are allowed:
                    <n>["ms"|"s"]
                Where <n> is an integer and the suffix specifies the units as
                milliseconds("ms") or seconds("s"). The default units are "ms".
  <count>       Number of samples to take before terminating.
  -J<flag>      Pass <flag> directly to the runtime system.

jstat -options是jstat对应的操作选项。

[root@iZuf68iyy7ylg8wcvkpzq6Z ~]# jstat -options
-class
-compiler
-gc
-gccapacity
-gccause
-gcmetacapacity
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcutil
-printcompilation

另一种是jstat -option 执行某一个具体的操作。参数说明如下:
1、option:对应的参数选项,jstat -options输出的结果
2、-t:可以在打印的列上添加事件戳,用户显示系统的运行时间。
3、-h:可以在周期性打印数据的时候,在指定输出多少行之后,打印一次表头。
4、vmid:进程ID(PID)
5、interval:指定执行的每次间隔事件,单位为毫秒。
6、count:用于指定打印多少记录,缺省则会一直打印。

jstat -option中的option可以从options中选择。
1、-class:显示ClassLoader相关的信息。
2、-compiler:显示JIT编译相关的信息。
3、-gc:显示和GC相关的信息。
4、-gccapacity:显示各个代的容量以及使用情况。
5、-gcmetacapacity:显示元数据空间(metaspace)的大小。
6、-gcnew:显示新生代的信息。
7、-gcnewcapacity:显示新生代的大小以及使用情况。
8、-gcold:显示老年代的信息。
9、-gcoldcapacity:显示老年代的大小以及使用情况。
10、-gcutil:显示垃圾收集信息。
11、printcompilation:输出JIT编译的方法信息。

1.1、-class

显示加载class的数量,以及所占空间等信息。

jstat -class <pid>

image.png
1、Loaded:已经装载的类数量
2、Bytes:装载类所占用的字节数
3、Unloaded:未加载的类数量
4、Bytes:未加载的字节数
5、Time:装载类所花费的时间

1.2、-compiler

编译统计

jstat -compiler <pid>

image.png
1、Compiled:编译数量
2、Failed:失败数量
3、Invalid:不可用数量
4、Time:编译花费的事假
5、FailedType:最新一次编译失败的类型
6、FailedMethod:最新一次编译失败的类名和方法

1.3、-gc

显示GC相关的堆信息,查看GC的次数及时间

jstat -gc <pid>

image.png
1、S0C:年轻代中第一个survivor(幸存区)的容量(字节)
2、S1C:年轻代中第二个survivor(幸存区)的容量(字节)
3、S0U:年轻代中第一个survivor(幸存区)目前已使用空间(字节)
4、S1U:年轻代中第二个survivir(幸存区)目前使用的空间(字节)
5、EC:年轻代中Eden(伊甸园)的容量(字节)
6、EU:年轻代中Eden(伊甸园)目前已使用空间(字节)
7、OC:Old代的容量(字节)
8、OU:Old代目前已使用空间(字节)
9、MC:metaspace(元空间)的容量(字节)
10、MU:metaspace(元空间)目前已使用的容量(字节)
11、YGC:从程序启动到采样年轻代中gc次数
12、YGCT:从程序启动到采样年轻代中gc所用时间(s)
13、FGC:从程序启动到采样时old代(全gc)次数
14、FGCT:从程序启动到采样时old代(全gc)gc所用时间(s)
15、GCT:从程序启动到采样时gc用的总时间(s)
16、PC:永久代(perm)的容量(字节)
17、PU:永久代(perm)目前已使用容量(字节)

1.4、-gccapacity

显示JVM中三代(young、old、perm)对象的使用和占用大小

jstat -gccapacity <pid>

image.png
1、NGCMN:年轻代(young)中初始化(最小)的大小(字节)
2、NGCMX:年轻代(young)中最大的容量(字节)
3、NGC:年轻代(young)中当前容量大小(字节)
4、S0C:年轻代中第一个survivor(幸存区)的容量(字节)
5、S1C:年轻代中第二个survivor(幸存区)的容量(字节)
6、OGCMN:old代中初始化(最小)的大小(字节)
7、OGCMX:old代中最大容量(字节)
8、OGC:当前old代容量大小(字节)
9、OC:当前old代容量大小(字节)
10、MCMN:metaspace(元空间)初始化(最小)容量(字节)
11、MCMX:metaspace(元空间)最大容量(字节)
12、MC:当前元空间大小(字节)
13、CCSMN:最小压缩类空间大小
14、CCSMX:最大压缩类空间大小
15、CCSC:当前压缩类空间大小
16、YGC:从应用程序启动到采样时YGC发生次数
17、FGC:从应用程序启动到采用时FGC发生次数

1.5、-gcmetacapacity

metaspace中对象的信息及占有量

jstat -gcmetacapacity <pid>

image.png
1、MCMN:metaspace(元空间)初始(最小)容量(字节)
2、MCMX:metaspcae(元空间)最大容量(字节)
3、MC:元空间当前容量
4、CCSMN:最小压缩类空间大小
5、CCSMX:最大压缩类空间大小
6、CCSC:当前压缩类空间大小
7、YGC:从应用启动到采样年轻代GC次数
8、FGC:从应用启动到采样全GC次数
9、FGCT:从应用启动到采样全GC时间(s)
10、GCT:从应用启动到采样GC用的总时间(s)

1.6、-gcnew

显示年轻代对象的信息

jstat -gcnew <pid>

image.png
1、S0C:年轻代中第一个survivor(幸存区)的容量(字节)
2、S1C:年轻代中第二个survivor(幸存区)的容量(字节)
3、S0U:年轻代中第一个survivor(幸存区)目前已使用空间(字节)
4、S1U:年轻代中第二个survivir(幸存区)目前使用的空间(字节)
5、TT:持有次数限制
6、MTT:最大持有次数限制
7、DSS:期望的幸存区大小
8、EC:年轻代中eden(伊甸园)中容量大小
9、EU:年轻代中eden(伊甸园)目前已使用空间
10、YGC:从应用启动到采样年轻代GC次数
11、YGCT:从应用启动到采样年轻代GC时间(s)

1.7、-gcnewcapacity

年轻代对象信息及占用

jstat -gcnewcapacity <pid>

image.png
1、NGCMN:年轻代中初始化(最小)的大小
2、NGCMX:年轻代中最大容量大小
3、NGC:年轻代中当前容量大小
4、S0CMX:年轻代中第一个suvivor(幸存区)最大容量(字节)
5、S0C:年轻代中第一个suvivor(幸存区)当前大小
6、S1CMX:年轻代中第二个suvivor(幸存区)最大容量大小
7、S1C:年轻代中第二个suvivor(幸存区)当前容量大小
8、ECMX:年轻代中eden(伊甸园)最大容量
9、EC:年轻代中eden(伊甸园)的当前容量
10、YGC:从应用程序启动到采样youngGC次数
11、FGC:从应用程序启动到采样全GC次数

1.8、-gcold

old代对象信息

jstat -gcold <pid>

image.png
1、MC:metaspace容量大小
2、MU:metaspace当前已使用容量
3、CCSC:压缩类空间大小
4、CCSU:压缩类空间已使用大小
5、OC:old代容量大小
6、OU:old代已使用容量
7、YGC:从应用程序启动到采用younggc次数
8、FGC:从应用启动到采样全GC次数
9、FGCT:从应用启动到采样全GC时间(s)
10、GCT:从应用启动到采样GC用的总时间(s)

1.9、-gcoldcapacity

old代中对象信息及占有量

jstat -gcoldcapacity <pid>

image.png
1、OGCMN:old代初始化(最小)容量
2、OGCMX:old代最大容量大小
3、OGU:old代当前新生成容量大小
4、OC:old代的容量
5、YGC:从应用程序启动到采用younggc次数
6、FGC:从应用启动到采样全GC次数
7、FGCT:从应用启动到采样全GC时间(s)
8、GCT:从应用启动到采样GC用的总时间(s)

1.10、-gcutil

统计GC信息

jstat -gcutil <pid>

image.png
1、S0:年轻代中第一个suvivor已使用容量占当前容量百分比
2、S1:年轻代中第二个suvivor已使用容量占当前容量百分比
3、E:年轻代中eden已使用容量占当前容量的百分比
4、O:老年代中已使用容量占当前容量的百分比
5、M:metaspace已使用容量占当前容量的百分比
6、CCS:压缩类空间已使用容量占当前容量的百分比
7、YGC:从应用程序启动到采用younggc次数
8、YGCT:从应用程序启动到采用youngGC所用时间(s)
9、FGC:从应用启动到采样全GC次数
10、FGCT:从应用启动到采样全GC时间(s)
11、GCT:从应用启动到采样GC用的总时间(s)

1.11、-gccause

显示垃圾回收的相关信息(同-gcutil),同时显示最后一次和当前正在发生GC的原因

jstat -gccause <pid>

image.png
1、LGCC:最后一次GC的原因(No GC表示没有发生GC)
2、GCC:正在发生的GC的原因(No GC表示没有发生GC)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Matlab各个版本介绍、区别分析及推荐

MATLAB&#xff0c;由美国MathWorks公司出品&#xff0c;是一款广泛应用的商业数学软件。自其诞生之初&#xff0c;MATLAB便以其强大的矩阵计算能力、灵活的编程环境以及广泛的应用领域&#xff0c;赢得了全球科研工作者和工程师的青睐。本文将详细介绍MATLAB的各个版本&#x…

蓝桥杯练习系统(算法训练)ALGO-950 逆序数奇偶

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 老虎moreD是一个勤于思考的青年&#xff0c;线性代数行列式时&#xff0c;其定义中提到了逆序数这一概念。不过众所周知我们…

力扣hot100:101. 对称二叉树(双指针以不同方式递归)

LeetCode&#xff1a;101. 对称二叉树 看了第一个样例&#xff0c;很容易直接层序遍历看每一层的前后是否相同。但接下来这个样例告诉你&#xff0c;不能这样做。 层序遍历 仔细思考会发现&#xff0c;层序遍历不能看本结点&#xff0c;但是可以看儿子结点是否对称&#xf…

RK3568平台(时间篇)看门狗

一.看门狗原理 在产品化的嵌入式系统中&#xff0c;为了使系统在异常情况下能自动复位&#xff0c;一般都需要引入看门狗。 看门狗其实就是一个可以在一定时间内被复位的计数器。当看门狗启动后&#xff0c;计数器开始自动计数&#xff0c;经过一定时间&#xff0c;如果没有被…

笔记-mathtype公式在PDF或打印出来显示不全

原文中的公式&#xff1a; 纸质版打印出来的公式有缺失 问题描述&#xff1a;mathtype公式编辑器所编辑的公式转成PDF或者打印出来有缺失 以下是解决方法的具体描述。 目录 一、准备工作二、操作步骤 一、准备工作 1、工具&#xff1a;mathtype、微软word 二、操作步骤 …

概念解析 | 互补学习系统

注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:互补学习系统(Complementary Learning Systems) 概念解析:互补学习系统 Paper Summary - “Complementary Learning Systems Theory Updated” | Rylan Schaeffer…

Linux下Palabos源码编译安装及使用

目录 软件介绍 基本依赖 其它可选依赖 一、源码下载 二、解压缩&#xff08;通过方式1下载源码.zip格式&#xff09; 三、编译安装 3.1 自带算例 ​编辑3.2 自行开发算例 四、简单使用 4.1 串行运行 4.2 并行运行 4.3 查看结果 软件介绍 Palabos是一款基于LBM&…

前端面试和一些建议

最近公司在招前端&#xff0c;我有跟着一起参与面试。我们主要负责面试的人&#xff0c;不会问那些什么闭包&#xff0c;原型链&#xff0c;他觉得那些东西在我们日常开发中用不到&#xff0c;问的基本都是一些工作中的问题。这些问题不是每次都问&#xff0c;但也就问这些了。…

[论文阅读] 测试时间自适应TTA

最初接触 CVPR2024 TEA: Test-time Energy Adaptation [B站]&#xff08;1:35:00-1:53:00&#xff09;https://www.bilibili.com/video/BV1wx4y1v7Jb/?spm_id_from333.788&vd_source145b0308ef7fee4449f12e1adb7b9de2 实现&#xff1a; 读取预训练好的模型参数设计需要更…

C语言写一个终端进度条

C语言写一个终端进度条 这个功能挺简单的&#xff0c;主要有以下两点&#xff1a; 如何获取终端宽度如何让字符在原地闪烁 如何获取终端宽度 这里用到了设备控制接口函数ioctl()&#xff0c;下面简单的介绍一下这个函数的用法&#xff1a; ioctl是一个在Unix和类Unix系统中…

怎样通过Java语言实现远程控制8路控制器/断路器

怎样通过Java语言实现远程控制8路控制器/断路器呢&#xff1f; 本文描述了使用Java语言调用HTTP接口&#xff0c;实现控制8路控制器/断路器&#xff0c;支持8路输出&#xff0c;均可独立控制&#xff0c;可接入各种电器。 可选用产品&#xff1a;可根据实际场景需求&#xff0…

【数据库主从架构】

【数据库主从架构】 1. 什么是数据库的主从架构1.1 主从复制1.1.1 MySQL的主从主从复制技术三级目录 1. 什么是数据库的主从架构 随着公司业务线的增多&#xff0c;各种数据都在迅速增加&#xff0c;并且数据的读取流量也大大增加&#xff0c;就面临着数据安全问题&#xff0c;…

手把手教你实现通讯录

整体构思 我们现在要实现一个通讯录 它应该有以下的功能 通讯录可以用来存储1000个人的信息&#xff0c;每个人的信息包括&#xff1a;姓名、性别、年龄、电话、住址 提供方法&#xff1a; 1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人信息 4.修改指定联系人信…

如何删除BigKey2

例2&#xff1a;假如有hash类型的key&#xff0c;其中有100万对field和value&#xff0c;field是自增id&#xff0c;这个key存在什么问题&#xff1f;如何优化&#xff1f; keyfieldvaluesomeKeyid:0value0..........id:999999value999999 存在的问题&#xff1a; hash的ent…

BJFUOJ-C++程序设计-实验2-类与对象

A 评分程序 答案&#xff1a; #include<iostream> #include<cstring>using namespace std;class Score{ private:string name;//记录学生姓名double s[4];//存储4次成绩&#xff0c;s[0]和s[1]存储2次随堂考试&#xff0c;s[2]存储期中考试&#xff0c;s[3]存储期…

机器学习:深入解析SVM的核心概念【二、对偶问题】

对偶问题 **问题一&#xff1a;什么叫做凸二次优化问题&#xff1f;而且为什么符合凸二次优化问题&#xff1f;**为什么约束条件也是凸的半空间&#xff08;Half-Space&#xff09;凸集&#xff08;Convex Set&#xff09;半空间是凸集的例子SVM 约束定义的半空间总结 **问题二…

使用Colab的高RAM模式

使用Colab的高RAM模式 colab需要升级为pro或者pro会员 1. 购买pro 图片来源&#xff1a;https://blog.csdn.net/javastart/article/details/138094086 2. 打开高RAM模式 要在Colab上使用高RAM模式来运行模型计算&#xff0c;您需要按照以下步骤操作&#xff1a; 打开您的…

Deep Learning Part Five RNNLM的学习和评价-24.4.30

准备好RNNLM所需要的层&#xff0c;我们现在来实现RNNLM&#xff0c;并对其进行训练&#xff0c;然后再评价一下它的结果的。 5.5.1 RNNLM的实现 这里我们将RNNLM使用的网络实现为SimpleRnnlm类&#xff0c;其层结构如下&#xff1a; 如图 5-30 所示&#xff0c;SimpleRnnlm …

调教AI给我写了一个KD树的算法

我不擅长C&#xff0c;但是目前需要用C写一个KD树的算法。首先我有一份点云数据&#xff0c;需要找给定坐标范围0.1mm内的所有点。 于是我开始问AI&#xff0c;他一开始给的答案&#xff0c;完全是错误的&#xff0c;但是我一步步给出反馈&#xff0c;告诉他的问题&#xff0c;…

基于Springboot的交流互动系统

基于SpringbootVue的交流互动系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 帖子信息 聚会信息 后台登录 后台管理首页 用户管理 帖子分类管理 帖子信息…