From 5bd67e4184bd44ee0855b29da07f7b78a66cb460 Mon Sep 17 00:00:00 2001 From: 8ga Date: Thu, 13 Mar 2025 13:48:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20JFR/2=5FEvent=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E5=8F=8A=E9=85=8D=E7=BD=AE.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JFR/2_Event结构及配置.md | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 JFR/2_Event结构及配置.md diff --git a/JFR/2_Event结构及配置.md b/JFR/2_Event结构及配置.md new file mode 100644 index 0000000..4db5eb1 --- /dev/null +++ b/JFR/2_Event结构及配置.md @@ -0,0 +1,42 @@ +### Event 结构 + +- Event 大小 +- Event ID +- 时间戳 +- 持续时间 +- 相关线程 ID +- 相关堆栈 ID + +每个 Event 还会有自己的 Payload,承载自己要采集的数据。但不是每个 Event 都填充上面的字段,只是结构里面有,并不会采集。 + +### Event采集的公共配置 + +- enabled:是否启用这个 Event 的采集,true/false +- cutoff:是否截断,例如:1d、1h、1m、1s、1ms、1ns,0=不截断 +- stackTrace:是否启用堆栈跟踪,true/false +- period:采集周期 + + beginChunk:在每一个 Data Chunk 写满另起一个的时候,立刻采集一次 + + everyChunk:在每一个 Data Chunk 写到占用一半空间限制的时候,立刻采集一次 + + endChunk:在每一个 Data Chunk 写满的时候,立刻采集一次 + + 或者配置具体时间,例如:1d、1h、1m、1s、1ms、1ns +- threshold:Event 持续时间超过这个阈值才会采集,例如:1d、1h、1m、1s、1ms、1ns + +Event采集详细配置,JDK自带两个模板,在 $JAVA_HOME/lib/jfr 目录下,里面配置格式是一个xml文件,取其中一个配置举个例子,例如: + +```xml + + true + false + 0 ns + +``` +这个就是 OldObject 采集 Event 的配置,这里配置为: + +- 启用这个Event采集 +- 不采集堆栈 +- 不截断 + +你也可以加上 period 和 threshold 配置,但对这个 Event 没啥效果。**这里有个 control 属性,接下来会提到。** + +### 自定义配置 +