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://www.mzph.cn/pingmian/7536.shtml

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

相关文章

python - rst file to html

文章目录 python - rst file to html概述笔记下载安装PyCharm最新的学习版新建虚拟环境为Conda的工程添加docutils库新建python文件&#xff0c;添加转换代码运行自己写的python文件&#xff0c;执行转换转换结果END python - rst file to html 概述 开源工程中有一个.rst文件…

Java集合 总结篇(全)

Java集合 集合底层框架总结 List 代表的有序&#xff0c;可重复的集合。 ArrayList -- 数组 -- 把他想象成C中的Vector就可以&#xff0c;当数组空间不够的时候&#xff0c;会自动扩容。 -- 线程不安全 LinkedList -- 双向链表 -- 可以将他理解成一个链表&#xff0c;不支持…

Delta lake with Java--数据增删改查

之前写的关于spark sql 操作delta lake表的&#xff0c;总觉得有点混乱&#xff0c;今天用Java结合真实的数据来进行一次数据的CRUD操作&#xff0c;所涉及的数据来源于Delta lake up and running配套的 GitGitHub - benniehaelen/delta-lake-up-and-running: Companion reposi…

【JAVA |基础】运算符、程序逻辑控制以及方法的使用

目录 一、前言 二、操作符 1.算术运算符 2.赋值运算符 3.比较运算符 4.逻辑运算符 5.条件&#xff08;三目、三元&#xff09;运算符 6.位运算符(都是基于二进制来计算) 三、 程序逻辑控制 1.顺序结构 2.分支结构 if语句 Switch语句 3.循环结构 while语句 for循环…

Hive3.0新特性:Materialized Views 物化视图

Materialized Views 物化视图 在 Apache Hive 3.0 中引入了物化视图&#xff08;Materialized Views&#xff09;的支持&#xff0c;它们是预先计算并缓存了查询结果的数据结构&#xff0c;以提高查询性能和降低延迟。物化视图通过将查询的结果存储在物理表中来实现&#xff0…

算法提高之玉米田

算法提高之玉米田 核心思想&#xff1a;状态压缩dp 将图存入g数组 存的时候01交换一下方便后面判断即g数组中0为可以放的地方 state中1为放的地方 这样只要state为1 g为0就可以判断不合法 #include <iostream>#include <cstring>#include <algorithm>#includ…

桥接模式类图与代码

欲开发一个绘图软件&#xff0c;要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例&#xff0c;对应的绘图程序如表 7.7 所示。 根据绘图软件的扩展性要求&#xff0c;该绘图软件将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况&#xff0c;现采用桥接…

Application exit(Out of memory)

Qt for WebAssembly 开发的网页&#xff0c;在 iOS 设备上打开会提示&#xff1a;Out of memory 如图&#xff1a; 解决办法&#xff1a; 环境&#xff1a;Qt 6.7.0 WebAssembly multi-threaded Emscripten Compiler 3.1.50 在CMakeLists.txt 中增加&#xff1a; set_tar…

使用Docker安装MySQL5.7.36

拉取镜像并查看 docker pull mysql:5.7.36拉取成功后查看&#xff08;非必须&#xff09; docker images创建并设置宿主机 mysql 配置文件目录和数据文件目录 创建相关文件夹将容器中的mysql数据保存到本地&#xff0c;这样即使容器被删除&#xff0c;数据也不会丢失。 mkd…

Python + selenium如何截图!

废话不多说&#xff0c;直接进入正题 一、直接截取网页全屏 截全屏的时候&#xff0c;我们用到的内置方法为save_screenshot("demo1.png") from selenium import webdriver from time import sleepclass test:driver webdriver.Chrome()driver.maximize_window()…

《架构思维:从程序员到CTO》:通往顶级架构师之路

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

PCIE协议-1

1. PCIe结构拓扑 一个结构由点对点的链路组成&#xff0c;这些链路将一组组件互相连接 - 图1-2展示了一个结构拓扑示例。该图展示了一个称为层级结构的单一结构实例&#xff0c;由一个根复合体&#xff08;Root Complex, RC&#xff09;、多个端点&#xff08;I/O设备&#xf…

ubuntu20部署3d高斯

3d高斯的链接&#xff1a;https://github.com/graphdeco-inria/gaussian-splatting 系统环境 ubuntu20的系统环境&#xff0c;打算只运行训练的代码&#xff0c;而不去进行麻烦的可视化&#xff0c;可视化直接在windows上用他们预编译好的exe去可视化。&#xff08;因为看的很…

暗区突围pc端资格发放了吗 暗区突围pc测试资格怎么获取

暗区突围pc端资格发放了吗 暗区突围pc测试资格怎么获取 暗区突围是一款很火爆的第一人称射击网游&#xff0c;现在终于要上线PC端啦&#xff01;小伙伴们是不是已经迫不及待想要体验电脑上的硬核射击快感了&#xff1f;暗区突围pc端资格已经陆续发放&#xff0c;想要参与PC端…

TC8002D 是一颗带关断模式的音频功放IC

一、一般概述 TC8002D是一颗带关断模式的音频功放IC。在5V输入电压下工作时&#xff0c;负载(3Ω)上的平均功率 为3 W&#xff0c;且失真度不超过10%。而对于手提设备而言&#xff0c;当VDD作用于关断端时&#xff0c;TC8002D将会进入关断模式&#xff0c;此时的功耗极…

探索淘宝API接口对接(属性规格丨sku价格丨详情图丨优惠券等):打造智能电商解决方案

一、引言 随着电子商务的快速发展&#xff0c;越来越多的企业和开发者希望通过自动化和智能化的方式接入电商平台&#xff0c;以实现更高效的数据交互和业务流程。淘宝作为中国最大的电商平台之一&#xff0c;其提供的API接口成为了众多企业和开发者关注的焦点。本文将探讨淘宝…

【spring】Bean的生命周期回调函数和Bean的循环依赖

目录 1、Bean的生命周期 2、Bean的生命周期回调函数 2.1、初始化的生命周期回调 2.2、销毁的生命周期回调 3、Bean的循环依赖 1、Bean的生命周期 spring的bean的生命周期主要是创建bean的过程&#xff0c;一个bean的生命周期主要是4个步骤&#xff1a;实例化&#xff0c;…

视频剪辑图文实例:一键操作,轻松实现视频批量片头片尾减时

视频剪辑是现代媒体制作中不可或缺的一环&#xff0c;而批量处理视频更是许多专业人士和爱好者的常见需求。在剪辑过程中&#xff0c;调整视频的片头片尾时长可以显著提升视频的质量和观感。本文将通过图文实例的方式&#xff0c;向您展示如何一键操作&#xff0c;轻松实现视频…

直播录屏怎么录?分享3种方法

随着网络直播的兴起&#xff0c;直播录屏已成为众多网友记录精彩瞬间、分享有趣内容的重要工具。直播录屏不仅能帮助我们回顾和保存直播中的精彩片段&#xff0c;还能为创作者提供更多的素材和灵感。 本文将为大家介绍3种直播录屏的方法&#xff0c;帮助大家能够更好地利用这一…

【IEEE独立出版|往届均已成功检索】ISPDS 2024诚邀投稿参会

第五届信息科学与并行、分布式处理国际学术会议&#xff08;ISPDS 2024&#xff09; 2024 5th International Conference on Information Science, Parallel and Distributed Systems 2024年5月31-6月2日 | 中国广州NEWS&#xff1a;会议已在格林威治大学官网上线会议已经上线到…