From f9c3841151712599a58cfd377057f80852b134c7 Mon Sep 17 00:00:00 2001 From: 8ga Date: Tue, 11 Mar 2025 16:32:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E5=88=9D=E8=AF=86JFR.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 初识JFR.md | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/初识JFR.md b/初识JFR.md index d64b028..d6f97d6 100644 --- a/初识JFR.md +++ b/初识JFR.md @@ -154,4 +154,48 @@ Event 是多线程产生的,如果 Event 记录要保证全局有序,那么 相加就是JFR的总内存占用。 -### jcmd 命令启用JFR +### jcmd + +#### 开启JFR记录 +eg:`jcmd JFR.start name=profile_online maxage=1d maxsize=1g`,JFR.start 后面的参数和*-XX:StartFlightRecording*一样 + +#### 停止JFR记录 +eg:`jcmd JFR.stop name=profile_online` + +#### 查看当前正在执行的 JFR 记录 +eg:`jcmd JFR.check` + +输出eg: + +``` +: +Recording 1: 参数列表 (running) +``` +#### 查看配置 +`jcmd JFR.configure`,不传入参数,则是查看当前配置。传入参数就是修改配置,与*-XX:FlightRecorderOptions*一样。 + +输出eg: + +``` +Repository path: /tmp/2020_03_18_08_41_44_21 + +Stack depth: 64 +Global buffer count: 20 +Global buffer size: 512.0 kB +Thread buffer size: 8.0 kB +Memory size: 10.0 MB +Max chunk size: 12.0 MB +Sample threads: true +``` +#### 输出dump文件 +`jcmd JFR.dump` + +|参数 | 默认 | 描述| +|:-----|:-----|:-----| +|name | - | 指定要查看的 JFR 记录名称| +|filename | 无 | 指定输出位置| +|maxage | 0 | dump的时间范围的文件,配置和上文介绍的一样| +|maxsize | 0 | dump最大文件大小,配置和上文介绍的一样| +|begin | - | dump开始位置, 可以这么配置:09:00, 21:35:00, 2018-06-03T18:12:56.827Z, 2018-06-03T20:13:46.832, -10m, -3h, -1d| +|end |-| dump结束位置,可以这么配置: 09:00, 21:35:00, 2018-06-03T18:12:56.827Z, 2018-06-03T20:13:46.832, -10m, -3h, -1d| +|path-to-gc-roots| false | 一般不开启,dump 的时候打开这个肯定会触发一次 fullGC,对线上应用有影响| \ No newline at end of file