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/doc/async.html

54 lines
67 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="VuePress 2.0.0-beta.49">
<style>
:root {
--c-bg: #fff;
}
html.dark {
--c-bg: #22272e;
}
html, body {
background-color: var(--c-bg);
}
</style>
<script>
const userMode = localStorage.getItem('vuepress-color-scheme');
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
document.documentElement.classList.toggle('dark', true);
}
</script>
3 years ago
<link rel="icon" href="/images/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:title" content="Arthas"><meta property="og:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image" content="/images/arthas_mate_image.png"><meta property="og:description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="600"><meta property="twitter:image:src" content="/images/arthas_mate_image.png"><meta property="twitter:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta itemprop="name" content="Arthas"><meta itemprop="image" content="/images/arthas_mate_image.png"><meta itemprop="description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
3 years ago
</script><meta name="aes-config" content="pid=xux-opensource&user_type=101&uid=&username="><script src="//g.alicdn.com/alilog/mlog/aplus_v2.js" id="beacon-aplus" exparams="clog=o&aplus&sidx=aplusSidx&ckx=aplusCkx"></script><script src="//g.alicdn.com/aes/??tracker/1.0.34/index.js,tracker-plugin-pv/2.4.5/index.js,tracker-plugin-event/1.2.5/index.js,tracker-plugin-jserror/1.0.13/index.js,tracker-plugin-api/1.1.14/index.js,tracker-plugin-perf/1.1.8/index.js,tracker-plugin-eventTiming/1.0.4/index.js"></script><title>Arthas 后台异步任务 | arthas</title><meta name="description" content="arthas 使用文档">
3 years ago
<link rel="modulepreload" href="/assets/app.e9adadd6.js"><link rel="modulepreload" href="/assets/async.html.24e196a7.js"><link rel="modulepreload" href="/assets/async.html.7fc6690f.js"><link rel="prefetch" href="/assets/index.html.fc6fe773.js"><link rel="prefetch" href="/assets/index.html.303ae9ec.js"><link rel="prefetch" href="/assets/index.html.5be10814.js"><link rel="prefetch" href="/assets/advanced-use.html.80c572ab.js"><link rel="prefetch" href="/assets/advice-class.html.30be8b5c.js"><link rel="prefetch" href="/assets/agent.html.478e63bb.js"><link rel="prefetch" href="/assets/arthas-properties.html.126a2442.js"><link rel="prefetch" href="/assets/arthas3.html.f866a915.js"><link rel="prefetch" href="/assets/auth.html.7faa0702.js"><link rel="prefetch" href="/assets/base64.html.91916ad8.js"><link rel="prefetch" href="/assets/batch-support.html.6d8369c7.js"><link rel="prefetch" href="/assets/cat.html.49018237.js"><link rel="prefetch" href="/assets/classloader.html.e5597a48.js"><link rel="prefetch" href="/assets/cls.html.3d057407.js"><link rel="prefetch" href="/assets/commands.html.58e9e974.js"><link rel="prefetch" href="/assets/contact-us.html.e0d74259.js"><link rel="prefetch" href="/assets/dashboard.html.688b447f.js"><link rel="prefetch" href="/assets/docker.html.17503d14.js"><link rel="prefetch" href="/assets/download.html.19809e39.js"><link rel="prefetch" href="/assets/dump.html.35a47ccf.js"><link rel="prefetch" href="/assets/echo.html.81510109.js"><link rel="prefetch" href="/assets/faq.html.e22d74d2.js"><link rel="prefetch" href="/assets/getstatic.html.9ffb9ff2.js"><link rel="prefetch" href="/assets/grep.html.7747b85b.js"><link rel="prefetch" href="/assets/groovy.html.3c2a5669.js"><link rel="prefetch" href="/assets/heapdump.html.98d7b14d.js"><link rel="prefetch" href="/assets/help.html.67db59f7.js"><link rel="prefetch" href="/assets/history.html.f6e93473.js"><link rel="prefetch" href="/assets/http-api.html.8abd260a.js"><link rel="prefetch" href="/assets/idea-plugin.html.68b7d4f4.js"><link rel="prefetch" href="/assets/install-detail.html.666bc4d2.js"><link rel="prefetch" href="/assets/jad.html.a62cf748.js"><link rel="prefetch" href="/assets/jfr.html.fb32b04e.js"><link rel="prefetch" href="/assets/jvm.html.970a2dcd.js"><link rel="prefetch" href="/assets/keymap.html.79b77d01.js"><link rel="prefetch" href="/assets/logger.html.1c7e6fb8.js"><link rel="prefetch" href="/assets/manual-install.html.5992ea2f.js"><link rel="prefetch" href="/assets/mbean.html.07f7548d.js"><link rel="prefetch" href="/assets/mc.html.4a8fe9c1.js"><link rel="prefetch" href="/assets/memory.html.f3395aa5.js"><link rel="prefetch" href="/assets/monitor.html.f16f1733.js"><link rel="prefetch" href="/assets/ognl.html.e96e8461.js"><link rel="prefetch" href="/assets/options.html.f364e3b1.js"><link rel="prefetch" href="/assets/perfcounter.html.5ac9dd17.js"><link rel="prefetch" href="/assets/profiler.html.8b48b000.js"><link rel="prefetch" href="/assets/pwd.html.0881d938.js"><link rel="prefetch" href="/assets/quick-start.html.d22745bc.js"><link rel="prefetch" href="/assets/quit.html.7ac530c1.js"><link rel="prefetch" href="/assets/redefine.html.7a72fe7b.js"><link rel="prefetch" href="/assets/release-notes.html.dd1cd195.js"><link rel="prefetch" href="/assets/reset.html.452a35fa.js"><link rel="prefetch" href="/assets/retransform.html.fbef0997.js"><link rel="prefetch" href="/assets/save-log.html.c6a45ce2.js"><link rel="prefetch" href="/assets/sc.html.6441d65e.js"><link rel="prefetch" href="/assets/session.html.ebfd8261.js"><link rel="prefetch" href="/assets/sm.html.9e10db61.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.c4118b0a.js"><link rel="prefetch" href="/assets/stack.html.9add4cf4.js"><link rel="prefetch" href="/assets/start-arthas.html.bb492515.js"><link rel="prefetch" href="/assets/stop.html.b66bc06b.js"><link rel="prefetch" href="/assets/sysenv.html.26a8e556.js"><link rel="prefetch" href="/assets/sysprop.html.b7e9f6f3.js"><link rel="prefetch" href="/assets/tee.html.ad9aa342.js"><link rel="prefetch" href="/assets/thread.html.e5d9019c.js
3 years ago
<link rel="stylesheet" href="/assets/style.3627c3cf.css">
</head>
<body>
3 years ago
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="切换侧边栏" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/" class="" data-v-2aa8cc94><!----><span class="site-name can-hide" data-v-2aa8cc94>arthas</span><span class="navbar-version" data-v-2aa8cc94>v3.6.5</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=cn&amp;id=arthas-basics" rel="noopener noreferrer" target="_blank" aria-label="在线教程"><!--[--><!--]--><span>在线教程</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="解决方案"><span class="title">解决方案</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="解决方案"><span class="title">解决方案</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://cn.aliyun.com/product/aliware/mse?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="微服务解决方案"><!--[--><!--]--><span>微服务解决方案</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/aliware/txc?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="分布式事务解决方案"><!--[--><!--]--><span>分布式事务解决方案</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/ahas?spm=artha
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>这时命令在后台执行,可以在 console 中继续执行其他命令。</p><h2 id="_2-通过-jobs-查看任务" tabindex="-1"><a class="header-anchor" href="#_2-通过-jobs-查看任务" aria-hidden="true">#</a> 2. 通过 jobs 查看任务</h2><p>如果希望查看当前有哪些 arthas 任务在执行,可以执行 jobs 命令,执行结果如下</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">jobs</span>
<span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">]</span>*
Stopped <span class="token function">watch</span> com.taobao.container.Test <span class="token builtin class-name">test</span> <span class="token string">&quot;params[0].{? #this.name == null }&quot;</span> -x <span class="token number">2</span>
execution count <span class="token builtin class-name">:</span> <span class="token number">19</span>
start <span class="token function">time</span> <span class="token builtin class-name">:</span> Fri Sep <span class="token number">22</span> 09:59:55 CST <span class="token number">2017</span>
<span class="token function">timeout</span> <span class="token function">date</span> <span class="token builtin class-name">:</span> Sat Sep <span class="token number">23</span> 09:59:55 CST <span class="token number">2017</span>
session <span class="token builtin class-name">:</span> 3648e874-5e69-473f-9eed-7f89660b079b <span class="token punctuation">(</span>current<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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>可以看到目前有一个后台任务在执行。</p><ul><li>job id 是 10, <code>*</code> 表示此 job 是当前 session 创建</li><li>状态是 Stopped</li><li>execution count 是执行次数,从启动开始已经执行了 19 次</li><li>timeout date 是超时的时间,到这个时间,任务将会自动超时退出</li></ul><h2 id="_3-任务暂停和取消" tabindex="-1"><a class="header-anchor" href="#_3-任务暂停和取消" aria-hidden="true">#</a> 3. 任务暂停和取消</h2><p>当任务正在前台执行,比如直接调用命令<code>trace Test t</code>或者调用后台执行命令<code>trace Test t &amp;</code>后又通过<code>fg</code>命令将任务转到前台。这时 console 中无法继续执行命令,但是可以接收并处理以下事件:</p><ul><li>ctrl + z将任务暂停。通过<code>jbos</code>查看任务状态将会变为 Stopped通过<code>bg &lt;job-id&gt;</code>或者<code>fg &lt;job-id&gt;</code>可让任务重新开始执行</li><li>ctrl + c停止任务</li><li>ctrl + d按照 linux 语义应当是退出终端,目前 arthas 中是空实现,不处理</li></ul><h2 id="_4-fg、bg-命令-将命令转到前台、后台继续执行" tabindex="-1"><a class="header-anchor" href="#_4-fg、bg-命令-将命令转到前台、后台继续执行" aria-hidden="true">#</a> 4. fg、bg 命令,将命令转到前台、后台继续执行</h2><ul><li>任务在后台执行或者暂停状态(<code>ctrl + z</code>暂停任务)时,执行<code>fg &lt;job-id&gt;</code>将可以把对应的任务转到前台继续执行。在前台执行时,无法在 console 中执行其他命令</li><li>当任务处于暂停状态时(<code>ctrl + z</code>暂停任务),执行<code>bg &lt;job-id&gt;</code>将可以把对应的任务在后台继续执行</li><li>非当前 session 创建的 job只能由当前 session fg 到前台执行</li></ul><h2 id="_5-任务输出重定向" tabindex="-1"><a class="header-anchor" href="#_5-任务输出重定向" aria-hidden="true">#</a> 5. 任务输出重定向</h2><p>可通过<code>&gt;</code>或者<code>&gt;&gt;</code>将任务输出结果输出到指定的文件中,可以和<code>&amp;</code>一起使用,实现 arthas 命令的后台异步任务。比如:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace Test t <span class="token operator">&gt;&gt;</span> test.out <span class="token operator">&amp;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>这时 trace 命令会在后台执行,并且把结果输出到~/logs/arthas-cache/test.out。可继续执行其他命令。并可查看文件中的命令执行结果。</p><p>当连接到远程的 arthas server 时可能无法查看远程机器的文件arthas 同时支持了自动重定向到本地缓存路径。使用方法如下:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace Test t <span class="token operator">&gt;&gt;</span> <span class="token operator">&amp;</span>
job <span class="token function">id</span> <span class="token builtin class-name">:</span> <span class="token number">2</span>
cache location <span class="token builtin class-name">:</span> /Users/gehui/logs/arthas-cache/28198/2
3 years ago
</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>可以看到并没有指定重定向文件位置arthas 自动重定向到缓存中了,执行命令后会输出 job id 和 cache location。cache location 就是重定向文件的路径,在系统 logs 目录下,路径包括 pid 和 job id避免和其他任务冲突。命令输出结果到<code>/Users/gehui/logs/arthas-cache/28198/2</code>job id 为 2。</p><h2 id="_6-停止命令" tabindex="-1"><a class="header-anchor" href="#_6-停止命令" aria-hidden="true">#</a> 6. 停止命令</h2><p>异步执行的命令,如果希望停止,可执行<code>kill &lt;job-id&gt;</code></p><h2 id="_7-其他" tabindex="-1"><a class="header-anchor" href="#_7-其他" aria-hidden="true">#</a> 7. 其他</h2><ul><li>最多同时支持 8 个命令使用重定向将结果写日志</li><li>请勿同时开启过多的后台异步命令,以免对目标 JVM 性能造成影响</li><li>如果不想停止 arthas继续执行后台任务可以执行 <code>quit</code> 退出 arthas 控制台(<code>stop</code> 会停止 arthas 服务)</li></ul></div><!--[--><!--]--></div><footer class="page-meta right-menu-padding" data-v-8e2a76de><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/alibaba/arthas/edit/master/site/docs/doc/async.md" rel="noopener noreferrer" target="_blank" aria-label="在 GitHub 上编辑此页"><!--[--><!--]--><span>在 GitHub 上编辑此页</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">贡献者: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: hengyunabc@gmail.com">hengyunabc</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: hollowman186@vip.qq.com">Hollow Man</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: 983433479@qq.com">汪吉</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-8e2a76de><p class="inner"><!----><span class="next"><a href="/doc/save-log.html" class="" aria-label="执行结果存日志"><!--[--><!--]--> 执行结果存日志 <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
3 years ago
<script type="module" src="/assets/app.e9adadd6.js" defer></script>
</body>
</html>