JVM在线分析-监控工具(jps, jstat, jstatd)
参考官方文档(jdk11)
https://docs.oracle.com/en/java/javase/11/tools/troubleshooting-tools-and-commands.html#GUID-CB44BFBA-E5F9-4D80-8EE8-28E9F16BC451
1. 监控工具(jps, jstat, jstatd)
jps
-q
Suppresses the output of the class name, JAR file name, and arguments passed to the main method, producing a list of only local JVM identifiers.
-mlvV
-m displays the arguments passed to the main method. The output may be null for embedded JVMs.-l displays the full package name for the application's main class or the full path name to the application's JAR file.-v displays the arguments passed to the JVM.-V suppresses the output of the class name, JAR file name, and arguments passed to the main method, producing a list of only local JVM identifiers.
jstat
(base) PS C:\Users\zishi> jstat -h
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.-? -h --help Prints this help message.-help Prints this help message.
说明:
option:参数选项
-t:可以在打印的列加上Timestamp列,用于显示系统运行的时间
-h:可以在周期性数据输出的时候,指定输出多少行以后输出一次表头
vmid:Virtual Machine ID( 进程的 pid)
interval:执行每次的间隔时间,单位为毫秒
count:用于指定输出多少次记录,缺省则会一直打印
示例:
(base) PS C:\Users\zishi> jstat -gcutil -t -h5 24392 1000 20
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT2587.6 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122588.6 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122589.6 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122590.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122591.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.212
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT2592.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122593.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122594.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122595.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122596.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.212
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT2597.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122598.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122599.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122600.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122601.7 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.212
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT2602.8 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122603.8 0.00 100.00 14.61 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122604.8 0.00 100.00 15.17 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122605.8 0.00 100.00 15.17 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.2122606.8 0.00 100.00 15.17 11.16 97.36 91.49 12 0.202 0 0.000 6 0.010 0.212
-options说明
(base) PS C:\Users\zishi> jstat -options
-class
-compiler
-gc
-gccapacity
-gccause
-gcmetacapacity
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcutil
-printcompilation
class: Displays statistics about the behavior of the class loader.
(base) PS C:\Users\zishi> jstat -class 24392
Loaded Bytes Unloaded Bytes Time13370 25776.4 0 0.0 6.23
说明:
Loaded:加载class的数量
Bytes:所占用空间大小
Unloaded:未加载数量
Bytes:未加载占用空间
Time:时间
compiler: Displays statistics about the behavior of the Java HotSpot VM Just-in-Time compiler.
(base) PS C:\Users\zishi> jstat -compiler 24392
Compiled Failed Invalid Time FailedType FailedMethod9892 1 0 52.28 1 org/springframework/cglib/core/MethodWrapper$MethodWrapperKey$$KeyFactoryByCGLIB$$552be97a hashCode
说明:
Compiled:编译数量。
Failed:失败数量
Invalid:不可用数量
Time:时间
FailedType:失败类型
FailedMethod:失败的方法
gc: Displays statistics about the behavior of the garbage collected heap.
(base) PS C:\Users\zishi> jstat -gc 24392S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT CGC CGCT GCT0.0 36864.0 0.0 36864.0 358400.0 309248.0 231424.0 14005.6 73932.0 72017.7 8704.0 7939.9 11 0.185 0 0.000 6 0.010 0.195
说明:
S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:eden区的大小
EU:eden区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
gccapacity: Displays statistics about the capacities of the generations and their corresponding spaces.
(base) PS C:\Users\zishi> jstat -gccapacity 24392NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC CGC0.0 8325120.0 395264.0 0.0 36864.0 358400.0 0.0 8325120.0 231424.0 231424.0 0.0 1114112.0 73932.0 0.0 1048576.0 8704.0 11 0 6
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0C:第一个幸存区大小
S1C:第二个幸存区的大小
EC:伊甸园区的大小
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:当前老年代大小
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代gc次数
FGC:老年代GC次数
gccause: Displays a summary about garbage collection statistics (same as -gcutil), with the cause of the last and current (when applicable) garbage collection events.
(base) PS C:\Users\zishi> jstat -gccause 24392S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT LGCC GCC0.00 100.00 89.14 6.05 97.41 91.22 11 0.185 0 0.000 6 0.010 0.195 G1 Evacuation Pause No GC
说明:
这里是引用
gcnew: Displays statistics about the behavior of the new generation.
(base) PS C:\Users\zishi> jstat -gcnew 24392S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT0.0 36864.0 0.0 36864.0 7 15 23552.0 358400.0 323584.0 11 0.185
说明:
S0C:第一个幸存区大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
TT:对象在新生代存活的次数
MTT:对象在新生代存活的最大次数
DSS:期望的幸存区大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
gcnewcapacity: Displays statistics about the sizes of the new generations and their corresponding spaces.
(base) PS C:\Users\zishi> jstat -gcnewcapacity 24392NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC CGC0.0 8325120.0 395264.0 0.0 0.0 8325120.0 36864.0 8325120.0 358400.0 11 0 6
说明:
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0CMX:最大幸存1区大小
S0C:当前幸存1区大小
S1CMX:最大幸存2区大小
S1C:当前幸存2区大小
ECMX:最大伊甸园区大小
EC:当前伊甸园区大小
YGC:年轻代垃圾回收次数
FGC:老年代回收次数
gcold: Displays statistics about the behavior of the old generation and metaspace statistics.
(base) PS C:\Users\zishi> jstat -gcold 24392MC MU CCSC CCSU OC OU YGC FGC FGCT CGC CGCT GCT73932.0 72017.7 8704.0 7939.9 231424.0 14005.6 11 0 0.000 6 0.010 0.195
说明:
MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
OC:老年代大小
OU:老年代使用大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
gcoldcapacity: Displays statistics about the sizes of the old generation.
(base) PS C:\Users\zishi> jstat -gcoldcapacity 24392OGCMN OGCMX OGC OC YGC FGC FGCT CGC CGCT GCT0.0 8325120.0 231424.0 231424.0 11 0 0.000 6 0.010 0.195
说明:
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:老年代大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
gcmetacapacity: Displays statistics about the sizes of the metaspace.
(base) PS C:\Users\zishi> jstat -gcmetacapacity 24392MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT CGC CGCT GCT0.0 1114112.0 73932.0 0.0 1048576.0 8704.0 11 0 0.000 6 0.010 0.195
说明:
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
gcutil: Displays a summary about garbage collection statistics.
(base) PS C:\Users\zishi> jstat -gcutil 24392S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT0.00 100.00 92.57 6.05 97.41 91.22 11 0.185 0 0.000 6 0.010 0.195
说明:
S0:幸存1区当前使用比例
S1:幸存2区当前使用比例
E:伊甸园区使用比例
O:老年代使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
printcompilation: Displays Java HotSpot VM compilation method statistics.
(base) PS C:\Users\zishi> jstat -printcompilation 24392
Compiled Size Type Method10271 246 1 java/util/AbstractCollection toString
说明:
Compiled:最近编译方法的数量
Size:最近编译方法的字节码数量
Type:最近编译方法的编译类型。
Method:方法名标识。
参考:
https://docs.oracle.com/en/java/javase/11/tools/jstat.html#GUID-5F72A7F9-5D5A-4486-8201-E1D1BA8ACCB5
jstatd
待完善
https://docs.oracle.com/en/java/javase/11/tools/jstatd.html#GUID-FA737806-75CD-4EE7-A087-1CC4A5441870
相关文章:
JVM在线分析-监控工具(jps, jstat, jstatd)
参考官方文档(jdk11) https://docs.oracle.com/en/java/javase/11/tools/troubleshooting-tools-and-commands.html#GUID-CB44BFBA-E5F9-4D80-8EE8-28E9F16BC451 1. 监控工具(jps, jstat, jstatd) jps -q Suppresses the output of the class name, J…...
Console LDAP 配置解密
之前通过短视频向大家介绍了 Console 如何集成 LDAP,但很多小伙伴反映按照视频里的配置后不成功。今天就结合小伙伴们反映的问题来跟大家详细介绍一下。 Console LDAP 完整的配置参数如下: 名称类型说明hoststringLDAP 服务器地址portintLDAP 服务器端口…...
node插件MongoDB(三)—— 库mongoose 的使用和数据类型(一)
前言 提示:使用mongoose 的前提是你安装了node和 MongoDB。 mongoose 官网文档:http://mongoosejs.net/docs/index.html 文章目录 前言一、安装二、基本使用1. 打开bin目录的mongod.exe文件2. 基本使用的代码(连接mongodb 服务)3.…...
基础(二)
基础(二) 字符串型 C风格:char 变量名[] “字符串值”; C风格:string 变量名 “字符串值” #include <iostream> using namespace std; #include <string>int main() {// C风格char str1[] "h…...
思维模型 目标效应
本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。明确目标,激发内在动机。 1 目标效应的应用 1.1 目标效应在教育领域的应用-棉花糖实验 美国斯坦福大学心理学系的教授米歇尔(Walter Mischel)曾经进行了…...
【从0到1设计一个网关】性能优化---Netty线程数配置与JVM参数配置
文章目录 Netty线程介绍Netty实战配置JVM参数与ZGCJVM与ZGC调优Netty线程介绍 在Netty中有两个比较重要的线程概念,一个是BOSS线程,一个是Woker线程。 Boss线程组: Boss线程组通常负责处理接受客户端连接的工作,即处理ServerSocketChannel的连接事件。 Boss线程会监听并接…...
node插件MongoDB(五)—— 库mongoose 的模块化(五)
文章目录 一、使用mongoose 模块化的原因二、准备工作2. 启动mongo.exe 和mongod.exe 两个程序连接数据库 三、基本模块的拆分1、基本逻辑2、代码3、代码图示说明 四、在index.js 中进一步的拆分1.拆分原因2.新建model文件夹存储文档的结构对象3.代码4.代码实际演示和注意点 一…...
Windows server 2008 R2 IIS搭建ASP网站教程
一、安装应用程序服务器 提示安装成功 二、添加角色服务asp 三、asp网站配置 放入源码 设置网站首页为index.asp: 设置应用程序池 四、设置网站目录属性 五、access数据库连接配置 Cd c:\Windows\System32\inetsrv appcmd list apppool /xml | appcmd set apppool /…...
Linux之基础开发工具gdb调试器的使用(三)
文章目录 一、Linux调试器-gdb使用1、安装gdb2、背景3、Debug和release4、区分Debug和release 二、Linux调试器-gdb命令演示1、显示指定行之后的代码(自动记录最后一条指令)2、断点1、打印断点2、查看断点3、删除断点4、使能(禁用/开启&#…...
advanced-css: No.1
本套教程学习来自视频:https://www.bilibili.com/video/BV1n94y1o7yS/?p7&spm_id_frompageDriver&vd_sourceb79be8283df9418cb45941cc0bd583c6 案例 实现效果图 代码 HTML: <!DOCTYPE html> <html lang"en"><head><meta c…...
最新宝塔面板第三方云端站点程序源码/第三方宝塔面板PHP源码/全开源ThinkPHP框架
源码简介: 实现宝塔面板第三方云端站点程序源码,这个是第三方宝塔面板 btcloud PHP源码,它还有云端使用记录、IP黑白名单、定时任务等功能。 这是一个使用PHP开发的宝塔面板第三方云端站点程序。 您可以利用此程序搭建属于自己的宝塔面板第三方云端&a…...
【Unity之UI编程】玩法面板的实现
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:UI_…...
栈和队列:栈
栈的概念: 栈: 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。 栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。…...
由浅入深学习统计学 - 常用统计图形学习
学习笔记 第一章- 信息图形化 图形化(可视化) 在一堆数据中,自己发现了这些数据的规律,但是无法表述给其他人知道,图形化就是便于他人理解数据的规律的展示的手段。 或者说我们也可以从统计的数据图形中发现某些没有…...
【java进阶】集合的三种遍历(迭代器、增强for、Lambda)
目录 一、先谈集合: 二、单列集合的三种遍历方式 迭代器遍历 增强for遍历 Lambda表达式遍历 一、先谈集合: 🔥那我们平常用for循环依赖下标遍历不行嘛,这就与集合的分类有关了。 集合的体系结构: collection是单…...
Qt实现动态桌面小精灵(含源码)
目录 一、设计思路 二、部分源码演示 三、源码地址 🌈write in front🌈 🧸大家好,我是三雷科技.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由三雷科技原创 CSDN首发🐒 如需转载还请通知⚠️ 📝个人主页:三雷科技🧸—CSDN博客 🎁欢…...
Qt 自定义分页控件
目录 前言1、功能描述2、代码实现2.1 ui文件2.1 头文件2.2 源码文件2.3 设计思路 4、示例5、总结 前言 在应用程序开发时经常会遇到数据分页的需求,每一页展示特定数量的数据,通过点击按钮翻页或者输入页码跳转到指定页。 本文介绍一个自定义分页控件&a…...
Java中的7大设计原则
在面向对象的设计过程中,首先需要考虑的是如何同时提高一个软件系统的可维护性和可复用性。这时,遵从面向对象的设计原则,可以在进行设计方案时减少错误设计的产生,从不同的角度提升一个软件结构的设计水平。 1、单一职责 一个类…...
Spring Cloud和Kubernetes + Spring Boot 用哪个?
Spring Cloud和Kubernetes Spring Boot都是用于构建微服务架构的解决方案,它们各有优势和不足,选择哪个更好取决于你的具体需求和上下文。 Spring Cloud是一个基于Spring Boot的微服务开发框架,它提供了一套完整的微服务解决方案࿰…...
web-worker 基本使用
Web Workers 是浏览器中的一项技术,它允许在独立的线程中运行 JavaScript 代码,从而避免主线程阻塞。这对于执行长时间运行的计算、处理大量数据或执行其他 CPU 密集型任务非常有用。下面是一个简单的使用 Web Workers 的示例,包括主线程和工…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...
大数据治理的常见方式
大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...
