JVM笔记-常用命令

1、jstat

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

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

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

[root@iZuf68iyy7ylg8wcvkpzq6Z ~]# jstat -help
Usage: jstat -help|-optionsjstat -<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 targetJava virtual machine, typically a process id; <hostname> isthe name of the host running the target Java virtual machine;and <port> is the port number for the rmiregistry on thetarget host. See the jvmstat documentation for a more completedescription 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 asmilliseconds("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)

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

maven-test不通过导致无法打包

背景 别人写的一个test包&#xff0c;没有测试通过&#xff0c;导致最后没有打包成功 解决方案 package生命周中不要勾选test

《我的医养信息化之路》之三十三:健康保养“4S”店

最近早上起来肩部的骨头出现酸痛&#xff0c;不由得有点感慨岁月不饶人。我已经感觉到年近50岁各种器官的衰退&#xff0c;从30岁开始我就慢慢感觉到一点点的变化。年龄老化导致的系统整体功能水平低下&#xff0c;从而产生各种器质性慢性病症。因此&#xff0c;系统功能低下才…

Swagger使用和注释介绍

一&#xff1a;介绍 1、什么是Swagger Swagger是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法&#xff0c;参数和模型紧密集成到服务器端的代码&#xff…

GPU术语

可向量化循环 可向量化循环通常是指在编程中&#xff0c;能够被转换为向量操作或矩阵运算的循环结构。 在传统编程中&#xff0c;对于数组或向量中的每个元素执行相同的操作时&#xff0c;开发者可能会使用for循环逐一进行处理。然而&#xff0c;许多现代编程语言和库提供了向…

在做题中学习(50):搜索插入位置

35. 搜索插入位置 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;二分查找 思路&#xff1a;题目是有序的&#xff0c;时间复杂度O(logN),二分没跑了&#xff0c;题目说如果找不到target&#xff0c;返回它应该被插入位置的下标&#xff0c;所以可以分析一下示例2…

零基础代码随想录【Day27】|| 39. 组合总和,40.组合总和II, 131.分割回文串

目录 DAY27 39. 组合总和 解题思路&代码 40.组合总和II 解题思路&代码 131.分割回文串 解题思路&代码 DAY27 39. 组合总和 力扣题目链接(opens new window) 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有…

如果你作 为Java程序员曾经遭遇过NullPointerException,请举起手

如果你作 为Java程序员曾经遭遇过NullPointerException&#xff0c;请举起手 1.让Optional发光发热&#xff1a;去除代码中对null的检查&#xff0c; 采用防御式检查减少NullPointerException java8实战 书籍 第225页 免费下载链接&#xff1a; https://pan.quark.cn/s/5cf68…

STM32:配置EXTI—对射式红外传感器计次

文章目录 1、中断1.2 中断系统1.3 中断执行流程 2、STM32中断2.2EXTI&#xff08;外部中断&#xff09;2.3 EXTI 的基本结构2.4 AFIO复用IO口 3、NVIC基本结构3.2 NVIC优先级分组 4、配置EXTI4.2 AFIO 库函数4.3 EXTI 库函数4.4 NVIC 库函数4.5 配置EXTI的步骤4.6 初始化EXTI 1…

自动装车系统中激光雷达如何应对复杂环境

自动装车系统中激光雷达的稳定运行策略 在自动装车系统的设计和实施中&#xff0c;激光雷达作为核心传感器之一&#xff0c;其性能和准确性直接关系到整个系统的稳定性和工作效率。然而&#xff0c;实际运行中的现场环境往往复杂多变&#xff0c;对激光雷达的稳定运行构成一定…

[AI OpenAI-doc] 迁移指南 Beta

我们已经改变了助手 API 在 beta 的 v1 版本和 v2 版本之间工具和文件的工作方式。今天&#xff0c;通过 API&#xff0c;两个 beta 版本仍然可以访问&#xff0c;但我们建议尽快迁移到我们 API 的最新版本。我们将在 2024 年底之前废弃 beta 的 v1 版本。 如果您今天不使用助手…

华人团队用大模型实现“读心术”:大脑活动直接变文字

NeurIPS收录的一项新研究&#xff0c;让大模型也学会“读心术”了&#xff01; 通过学习脑电波数据&#xff0c;模型成功地把受试者的脑电图信号翻译成了文本。 而且整个过程不需要大型设备&#xff0c;只要一块特制的“头巾”就能实现。 这项成果名为DeWave&#xff0c;能在…

鸿蒙内核源码分析(时间管理篇) | 谁是内核基本时间单位

时间概念太重要了&#xff0c;在鸿蒙内核又是如何管理和使用时间的呢? 时间管理以系统时钟 g_sysClock 为基础&#xff0c;给应用程序提供所有和时间有关的服务。 用户以秒、毫秒为单位计时.操作系统以Tick为单位计时&#xff0c;这个认识很重要. 每秒的tick大小很大程度上决…

解决 git克隆拉取代码报SSL certificate problem错误

问题&#xff1a;拉取代码时报错&#xff0c;SSL证书问题:证书链中的自签名证书问题 解决&#xff1a;只需要关闭证书验证&#xff0c;执行下面代码即可&#xff1a; git config --global http.sslVerify "false" 再次拉取代码就可以了

STC89C52驱动XPT2046AD转换

目录 简介封装接线&#xff08;单端&#xff09;时序以及命令字SPI时序命令字 程序XPT2046.CXPT2046.hmain.c测试 简介 XPT2046是一款4线电阻式触摸屏控制器&#xff0c;采用12位125 kHz采样SAR类型A / D转换器。XPT2046工作电压低至2.2V&#xff0c;支持1.5V至VCC的数字I/O接…

暗区突围服务器连接失败/网络异常/无法连接下载解决方法

暗区突围是一款仿真战场的模拟&#xff0c;首要介绍的自然是游戏中基本都会参与的模式&#xff0c;叫做战术行动&#xff0c;大家参与其中是会作为特遣队员的身份来做任务&#xff0c;面临的是一个全面自给自足的战场环境&#xff0c;这种模式要求玩家在进入暗区之前自行筹备所…

Jmeter 中 CSV 如何参数化测试数据并实现自动断言

当我们使用Jmeter工具进行接口测试&#xff0c;可利用CSV Data Set Config配置元件&#xff0c;对测试数据进行参数化&#xff0c;循环读取csv文档中每一行测试用例数据&#xff0c;来实现接口自动化。此种情况下&#xff0c;很多测试工程师只会人工地查看响应结果来判断用例是…

PC小程序解密及反编译

一、小程序包解密 小程序原始加密包位置C:\Users\administrator\Documents\WeChat Files\Applet\wx234324324324 二、wxappUnpacker反编译 npm install./bingo D:\temp\小程序包解密\wxpack\wx234324324324.wxapkg 三、查看反编译后的文件

阿里云国际服(alibabacloud)介绍、注册、购买教程?

一、什么是阿里云国际版&#xff1f; 阿里云分为国内版和国际版。国内版仅面向中国大陆客户&#xff0c;国际版面向全球客户。 二、国际版与国内版有何异同&#xff1f; 1&#xff09;异&#xff1a;除了目标客户不同&#xff0c;运营主体不同&#xff0c;所需遵守的法律与政…

精酿啤酒:种类与风格的多样性探索

啤酒&#xff0c;这一古老的酒精饮品&#xff0c;随着时代的发展与技术的进步&#xff0c;已经衍生出了无数种类与风格。其中&#xff0c;精酿啤酒在近年来备受瞩目&#xff0c;以其与众不同的酿造工艺和风味&#xff0c;成为了啤酒爱好者们的新宠。Fendi club 啤酒&#xff0c…

k8s常见问题:如何处理CrashLoopBackOff问题?

CrashLoopBackOff 概述 首先关于CrashLoopBackOff并不是代表一种错误&#xff0c; "CrashLoopBackOff 是 Kubernetes 中的一个状态&#xff0c;表示在一个 Pod 中发生的重启循环&#xff1a;Pod 中的一个容器启动之后发生了问题&#xff0c;然后反复重启。 Kubernetes 会…