You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
arthas/assets/jfr.html.c0702d0f.js

23 lines
12 KiB
JavaScript

import{_ as l}from"./arthas-output-recording.841048ea.js";import{_ as i,o as d,c as o,a as e,b as s,e as t,t as n,d as r,r as c}from"./app.6c27e557.js";const p={},u=e("h1",{id:"jfr",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#jfr","aria-hidden":"true"},"#"),t(" jfr")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-jfr",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"jfr",-1),g=t("\u5728\u7EBF\u6559\u7A0B"),v=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>Java Flight Recorder (JFR) \u662F\u4E00\u79CD\u7528\u4E8E\u6536\u96C6\u6709\u5173\u6B63\u5728\u8FD0\u884C\u7684 Java \u5E94\u7528\u7A0B\u5E8F\u7684\u8BCA\u65AD\u548C\u5206\u6790\u6570\u636E\u7684\u5DE5\u5177\u3002\u5B83\u96C6\u6210\u5230 Java \u865A\u62DF\u673A (JVM) \u4E2D\uFF0C\u51E0\u4E4E\u4E0D\u4F1A\u9020\u6210\u6027\u80FD\u5F00\u9500\uFF0C\u56E0\u6B64\u5373\u4F7F\u5728\u8D1F\u8F7D\u8F83\u91CD\u7684\u751F\u4EA7\u73AF\u5883\u4E2D\u4E5F\u53EF\u4EE5\u4F7F\u7528\u3002</p></div><p><code>jfr</code> \u547D\u4EE4\u652F\u6301\u5728\u7A0B\u5E8F\u52A8\u6001\u8FD0\u884C\u8FC7\u7A0B\u4E2D\u5F00\u542F\u548C\u5173\u95ED JFR \u8BB0\u5F55\u3002 \u8BB0\u5F55\u6536\u96C6\u6709\u5173 event \u7684\u6570\u636E\u3002\u4E8B\u4EF6\u5728\u7279\u5B9A\u65F6\u95F4\u70B9\u53D1\u751F\u5728 JVM \u6216 Java \u5E94\u7528\u7A0B\u5E8F\u4E2D\u3002\u6BCF\u4E2A\u4E8B\u4EF6\u90FD\u6709\u4E00\u4E2A\u540D\u79F0\u3001\u4E00\u4E2A\u65F6\u95F4\u6233\u548C\u4E00\u4E2A\u53EF\u9009\u7684\u6709\u6548\u8D1F\u8F7D\u3002\u8D1F\u8F7D\u662F\u4E0E\u4E8B\u4EF6\u76F8\u5173\u7684\u6570\u636E\uFF0C\u4F8B\u5982 CPU \u4F7F\u7528\u7387\u3001\u4E8B\u4EF6\u524D\u540E\u7684 Java \u5806\u5927\u5C0F\u3001\u9501\u6301\u6709\u8005\u7684\u7EBF\u7A0B ID \u7B49\u3002</p><p><code>jfr</code> \u547D\u4EE4\u57FA\u672C\u8FD0\u884C\u7ED3\u6784\u662F <code>jfr cmd [actionArg]</code></p><blockquote><p>\u6CE8\u610F\uFF1A JDK8 \u7684 8u262 \u7248\u672C\u4E4B\u540E\u624D\u652F\u6301 jfr</p></blockquote><h2 id="\u53C2\u6570\u8BF4\u660E" tabindex="-1"><a class="header-anchor" href="#\u53C2\u6570\u8BF4\u660E" aria-hidden="true">#</a> \u53C2\u6570\u8BF4\u660E</h2><table><thead><tr><th style="text-align:right;">\u53C2\u6570\u540D\u79F0</th><th style="text-align:left;">\u53C2\u6570\u8BF4\u660E</th></tr></thead><tbody><tr><td style="text-align:right;"><em>cmd</em></td><td style="text-align:left;">\u8981\u6267\u884C\u7684\u64CD\u4F5C \u652F\u6301\u7684\u547D\u4EE4\u3010start\uFF0Cstatus\uFF0Cdump\uFF0Cstop\u3011</td></tr><tr><td style="text-align:right;"><em>actionArg</em></td><td style="text-align:left;">\u5C5E\u6027\u540D\u6A21\u5F0F</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">\u8BB0\u5F55\u540D\u79F0</td></tr><tr><td style="text-align:right;">[r:]</td><td style="text-align:left;">\u8BB0\u5F55 id \u503C</td></tr><tr><td style="text-align:right;">[dumponexit:]</td><td style="text-align:left;">\u7A0B\u5E8F\u9000\u51FA\u65F6\uFF0C\u662F\u5426\u8981 dump \u51FA .jfr \u6587\u4EF6\uFF0C\u9ED8\u8BA4\u4E3A false</td></tr><tr><td style="text-align:right;">[d:]</td><td style="text-align:left;">\u5EF6\u8FDF\u591A\u4E45\u540E\u542F\u52A8 JFR \u8BB0\u5F55\uFF0C\u652F\u6301\u5E26\u5355\u4F4D\u914D\u7F6E\uFF0Ceg: 60s, 2m, 5h, 3d. \u4E0D\u5E26\u5355\u4F4D\u5C31\u662F\u79D2\uFF0C\u9ED8\u8BA4\u65E0\u5EF6\u8FDF</td></tr><tr><td style="text-align:right;">[duration:]</td><td style="text-align:left;">JFR \u8BB0\u5F55\u6301\u7EED\u65F6\u95F4\uFF0C\u652F\u6301\u5355\u4F4D\u914D\u7F6E\uFF0C\u4E0D\u5E26\u5355\u4F4D\u5C31\u662F\u79D2\uFF0C\u9ED8\u8BA4\u4E00\u76F4\u8BB0\u5F55</td></tr><tr><td style="text-align:right;">[s:]</td><td style="text-align:left;">\u91C7\u96C6 Event \u7684\u8BE6\u7EC6\u914D\u7F6E\u6587\u4EF6\uFF0C\u9ED8\u8BA4\u662F default.jfc \u4F4D\u4E8E <code>$JAVA_HOME/lib/jfr/default.jfc</code></td></tr><tr><td style="text-align:right;">[f:]</td><td style="text-align:left;">\u5C06\u8F93\u51FA\u8F6C\u50A8\u5230\u6307\u5B9A\u8DEF\u5F84</td></tr><tr><td style="text-align:right;">[maxage:]</td><td style="text-align:left;">\u7F13\u51B2\u533A\u6570\u636E\u6700\u5927\u6587\u4EF6\u8BB0\u5F55\u4FDD\u5B58\u65F6\u95F4\uFF0C\u652F\u6301\u5355\u4F4D\u914D\u7F6E\uFF0C\u4E0D\u5E26\u5355\u4F4D\u5C31\u662F\u79D2\uFF0C\u9ED8\u8BA4\u662F\u4E0D\u9650\u5236</td></tr><tr><td style="text-align:right;">[maxsize:]</td><td style="text-align:left;">\u7F13\u51B2\u533A\u7684\u6700\u5927\u6587\u4EF6\u5927\u5C0F\uFF0C\u652F\u6301\u5355\u4F4D\u914D\u7F6E\uFF0C \u4E0D\u5E26\u5355\u4F4D\u662F\u5B57\u8282\uFF0Cm \u6216\u8005 M \u4EE3\u8868 MB\uFF0Cg \u6216\u8005 G \u4EE3\u8868 GB\u3002</td></tr><tr><td style="text-align:right;">[state:]</td><td style="text-align:left;">jfr \u8BB0\u5F55\u72B6\u6001</td></tr></tbody></table><h2 id="\u542F\u52A8-jfr-\u8BB0\u5F55" tabindex="-1"><a class="header-anchor" href="#\u542F\u52A8-jfr-\u8BB0\u5F55" aria-hidden="true">#</a> \u542F\u52A8 JFR \u8BB0\u5F55</h2><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ jfr start
Started recording 1. No limit specified, using maxsize=250MB as default.
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0C\u5F00\u542F\u7684\u662F\u9ED8\u8BA4\u53C2\u6570\u7684 jfr \u8BB0\u5F55</p></div><p>\u542F\u52A8 jfr \u8BB0\u5F55\uFF0C\u6307\u5B9A\u8BB0\u5F55\u540D\uFF0C\u8BB0\u5F55\u6301\u7EED\u65F6\u95F4\uFF0C\u8BB0\u5F55\u6587\u4EF6\u4FDD\u5B58\u8DEF\u5F84\u3002</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ jfr start -n myRecording --duration 60s -f /tmp/myRecording.jfr
Started recording 2. The result will be written to:
/tmp/myRecording.jfr
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="\u67E5\u770B-jfr-\u8BB0\u5F55\u72B6\u6001" tabindex="-1"><a class="header-anchor" href="#\u67E5\u770B-jfr-\u8BB0\u5F55\u72B6\u6001" aria-hidden="true">#</a> \u67E5\u770B JFR \u8BB0\u5F55\u72B6\u6001</h2><p>\u9ED8\u8BA4\u662F\u67E5\u770B\u6240\u6709 JFR \u8BB0\u5F55\u4FE1\u606F</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jfr status
Recording: <span class="token assign-left variable">recording</span><span class="token operator">=</span><span class="token number">1</span> <span class="token assign-left variable">name</span><span class="token operator">=</span>Recording-1 <span class="token punctuation">(</span>running<span class="token punctuation">)</span>
Recording: <span class="token assign-left variable">recording</span><span class="token operator">=</span><span class="token number">2</span> <span class="token assign-left variable">name</span><span class="token operator">=</span>myRecording <span class="token assign-left variable">duration</span><span class="token operator">=</span>PT1M <span class="token punctuation">(</span>closed<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>\u67E5\u770B\u6307\u5B9A\u8BB0\u5F55 id \u7684\u8BB0\u5F55\u4FE1\u606F</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jfr status <span class="token parameter variable">-r</span> <span class="token number">1</span>
Recording: <span class="token assign-left variable">recording</span><span class="token operator">=</span><span class="token number">1</span> <span class="token assign-left variable">name</span><span class="token operator">=</span>Recording-1 <span class="token punctuation">(</span>running<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>\u67E5\u770B\u6307\u5B9A\u72B6\u6001\u7684\u8BB0\u5F55\u4FE1\u606F</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jfr status <span class="token parameter variable">--state</span> closed
Recording: <span class="token assign-left variable">recording</span><span class="token operator">=</span><span class="token number">2</span> <span class="token assign-left variable">name</span><span class="token operator">=</span>myRecording <span class="token assign-left variable">duration</span><span class="token operator">=</span>PT1M <span class="token punctuation">(</span>closed<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="dump-jfr-\u8BB0\u5F55" tabindex="-1"><a class="header-anchor" href="#dump-jfr-\u8BB0\u5F55" aria-hidden="true">#</a> dump jfr \u8BB0\u5F55</h2>`,19),b=e("code",null,"jfr dump",-1),f=e("code",null,"jfr",-1),_=e("br",null,null,-1),x=t(" \u6307\u5B9A\u8BB0\u5F55\u8F93\u51FA\u8DEF\u5F84"),k=r(`<div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jfr dump <span class="token parameter variable">-r</span> <span class="token number">1</span> <span class="token parameter variable">-f</span> /tmp/myRecording1.jfr
Dump recording <span class="token number">1</span>, The result will be written to:
/tmp/myRecording1.jfr
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>\u4E0D\u6307\u5B9A\u6587\u4EF6\u8F93\u51FA\u8DEF\u5F84\uFF0C\u9ED8\u8BA4\u662F\u4FDD\u5B58\u5230<code>arthas-output</code>\u76EE\u5F55\u4E0B</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jfr dump <span class="token parameter variable">-r</span> <span class="token number">1</span>
Dump recording <span class="token number">1</span>, The result will be written to:
/tmp/test/arthas-output/20220819-200915.jfr
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="\u505C\u6B62-jfr-\u8BB0\u5F55" tabindex="-1"><a class="header-anchor" href="#\u505C\u6B62-jfr-\u8BB0\u5F55" aria-hidden="true">#</a> \u505C\u6B62 jfr \u8BB0\u5F55</h2><p>\u4E0D\u6307\u5B9A\u8BB0\u5F55\u8F93\u51FA\u8DEF\u5F84\uFF0C\u9ED8\u8BA4\u662F\u4FDD\u5B58\u5230<code>arthas-output</code>\u76EE\u5F55\u4E0B</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jfr stop <span class="token parameter variable">-r</span> <span class="token number">1</span>
Stop recording <span class="token number">1</span>, The result will be written to:
/tmp/test/arthas-output/20220819-202049.jfr
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><blockquote><p>\u6CE8\u610F\u4E00\u6761\u8BB0\u5F55\u53EA\u80FD\u505C\u6B62\u4E00\u6B21\u3002</p></blockquote><p>\u4E5F\u53EF\u4EE5\u6307\u5B9A\u8BB0\u5F55\u8F93\u51FA\u8DEF\u5F84\u3002</p><h2 id="\u901A\u8FC7\u6D4F\u89C8\u5668\u67E5\u770B-arthas-output-\u4E0B\u9762-jfr-\u8BB0\u5F55\u7684\u7ED3\u679C" tabindex="-1"><a class="header-anchor" href="#\u901A\u8FC7\u6D4F\u89C8\u5668\u67E5\u770B-arthas-output-\u4E0B\u9762-jfr-\u8BB0\u5F55\u7684\u7ED3\u679C" aria-hidden="true">#</a> \u901A\u8FC7\u6D4F\u89C8\u5668\u67E5\u770B arthas-output \u4E0B\u9762 JFR \u8BB0\u5F55\u7684\u7ED3\u679C</h2>`,9),j=t("\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0Carthas \u4F7F\u7528 8563 \u7AEF\u53E3\uFF0C\u5219\u53EF\u4EE5\u6253\u5F00\uFF1A "),y={href:"http://localhost:8563/arthas-output/",target:"_blank",rel:"noopener noreferrer"},R=t("http://localhost:8563/arthas-output/"),J=t(" \u67E5\u770B\u5230"),F=e("code",null,"arthas-output",-1),M=t("\u76EE\u5F55\u4E0B\u9762\u7684 JFR \u8BB0\u5F55\u7ED3\u679C\uFF1A"),$=e("p",null,[e("img",{src:l,alt:""})],-1),w=e("p",null,"\u751F\u6210\u7684\u7ED3\u679C\u53EF\u4EE5\u7528\u652F\u6301 jfr \u683C\u5F0F\u7684\u5DE5\u5177\u6765\u67E5\u770B\u3002\u6BD4\u5982\uFF1A",-1),T=e("ul",null,[e("li",null,"JDK Mission Control \uFF1A https://github.com/openjdk/jmc")],-1);function V(B,D){const a=c("ExternalLinkIcon");return d(),o("div",null,[u,e("p",null,[e("a",h,[m,g,s(a)])]),v,e("p",null,[b,t(n()+" \u4F1A\u8F93\u51FA\u4ECE\u5F00\u59CB\u5230\u8FD0\u884C\u8BE5\u547D\u4EE4\u8FD9\u6BB5\u65F6\u95F4\u5185\u7684\u8BB0\u5F55\u5230 JFR \u6587\u4EF6\uFF0C\u4E14\u4E0D\u4F1A\u505C\u6B62 ",1),f,t(n()+" \u7684\u8BB0\u5F55",1),_,x]),k,e("p",null,[j,e("a",y,[R,s(a)]),J,F,M]),$,w,T])}const S=i(p,[["render",V],["__file","jfr.html.vue"]]);export{S as default};