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

153 lines
94 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
3 years ago
<meta name="generator" content="VuePress 2.0.0-beta.51">
<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>thread | arthas</title><meta name="description" content="arthas user document">
3 years ago
<link rel="modulepreload" href="/assets/app.b8f28394.js"><link rel="modulepreload" href="/assets/thread.html.855d6aa1.js"><link rel="modulepreload" href="/assets/thread.html.973f871b.js"><link rel="prefetch" href="/assets/index.html.4710759f.js"><link rel="prefetch" href="/assets/index.html.b82e60b6.js"><link rel="prefetch" href="/assets/index.html.47de61d0.js"><link rel="prefetch" href="/assets/advanced-use.html.7af41ed0.js"><link rel="prefetch" href="/assets/advice-class.html.0fbee513.js"><link rel="prefetch" href="/assets/agent.html.c69bb369.js"><link rel="prefetch" href="/assets/arthas-properties.html.ec9e34a7.js"><link rel="prefetch" href="/assets/arthas3.html.6f8a1b46.js"><link rel="prefetch" href="/assets/async.html.77838888.js"><link rel="prefetch" href="/assets/auth.html.e9c19ade.js"><link rel="prefetch" href="/assets/base64.html.bede7a83.js"><link rel="prefetch" href="/assets/batch-support.html.1b6f5b00.js"><link rel="prefetch" href="/assets/cat.html.884da075.js"><link rel="prefetch" href="/assets/classloader.html.fd7544ef.js"><link rel="prefetch" href="/assets/cls.html.1a584735.js"><link rel="prefetch" href="/assets/commands.html.96c18ca1.js"><link rel="prefetch" href="/assets/contact-us.html.966d3402.js"><link rel="prefetch" href="/assets/dashboard.html.d19c1ce5.js"><link rel="prefetch" href="/assets/docker.html.ff6648d8.js"><link rel="prefetch" href="/assets/download.html.17f7b1d7.js"><link rel="prefetch" href="/assets/dump.html.b770ec31.js"><link rel="prefetch" href="/assets/echo.html.13a90cb0.js"><link rel="prefetch" href="/assets/faq.html.0ae329d6.js"><link rel="prefetch" href="/assets/getstatic.html.bceeb20f.js"><link rel="prefetch" href="/assets/grep.html.f39bef00.js"><link rel="prefetch" href="/assets/groovy.html.ff092ae3.js"><link rel="prefetch" href="/assets/heapdump.html.304710b2.js"><link rel="prefetch" href="/assets/help.html.2953c2ac.js"><link rel="prefetch" href="/assets/history.html.78884cf1.js"><link rel="prefetch" href="/assets/http-api.html.c4a2d084.js"><link rel="prefetch" href="/assets/idea-plugin.html.1d460f41.js"><link rel="prefetch" href="/assets/install-detail.html.6858e5b4.js"><link rel="prefetch" href="/assets/jad.html.74e64c94.js"><link rel="prefetch" href="/assets/jfr.html.4409b634.js"><link rel="prefetch" href="/assets/jvm.html.dfd16149.js"><link rel="prefetch" href="/assets/keymap.html.1f4058d9.js"><link rel="prefetch" href="/assets/logger.html.b9a5fc3a.js"><link rel="prefetch" href="/assets/manual-install.html.032e3ad1.js"><link rel="prefetch" href="/assets/mbean.html.c4b6181d.js"><link rel="prefetch" href="/assets/mc.html.e7ef3234.js"><link rel="prefetch" href="/assets/memory.html.8f197f94.js"><link rel="prefetch" href="/assets/monitor.html.1a9e3203.js"><link rel="prefetch" href="/assets/ognl.html.e844f678.js"><link rel="prefetch" href="/assets/options.html.c5b2502d.js"><link rel="prefetch" href="/assets/perfcounter.html.0017bc1c.js"><link rel="prefetch" href="/assets/profiler.html.d5dff026.js"><link rel="prefetch" href="/assets/pwd.html.b5869172.js"><link rel="prefetch" href="/assets/quick-start.html.baa4d023.js"><link rel="prefetch" href="/assets/quit.html.d4b1deec.js"><link rel="prefetch" href="/assets/redefine.html.f435713e.js"><link rel="prefetch" href="/assets/release-notes.html.3b9e6f5d.js"><link rel="prefetch" href="/assets/reset.html.bf4269d2.js"><link rel="prefetch" href="/assets/retransform.html.dd188365.js"><link rel="prefetch" href="/assets/save-log.html.a1e023a5.js"><link rel="prefetch" href="/assets/sc.html.dd2f6580.js"><link rel="prefetch" href="/assets/session.html.845073de.js"><link rel="prefetch" href="/assets/sm.html.3eaf6ab4.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.fca54f6f.js"><link rel="prefetch" href="/assets/stack.html.9a709964.js"><link rel="prefetch" href="/assets/start-arthas.html.26165879.js"><link rel="prefetch" href="/assets/stop.html.a10e5134.js"><link rel="prefetch" href="/assets/sysenv.html.d77899be.js"><link rel="prefetch" href="/assets/sysprop.html.3641f71d.js"><link rel="prefetch" href="/assets/tee.html.afc1643a.j
3 years ago
<link rel="stylesheet" href="/assets/style.da1934a3.css">
</head>
<body>
3 years ago
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/en/" class="" data-v-61144abc><!----><span class="site-name can-hide" data-v-61144abc>arthas</span><span class="navbar-version" data-v-61144abc>v3.6.6</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/en/" class="" aria-label="HOME"><!--[--><!--]--> HOME <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=en&amp;id=arthas-basics" rel="noopener noreferrer" target="_blank" aria-label="ONLINE TUTORIALS"><!--[--><!--]--><span>ONLINE TUTORIALS</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">open in new window</span></span><!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc" class="router-link-active" aria-label="DOCS"><!--[--><!--]--> DOCS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/commands.md" class="" aria-label="COMMANDS"><!--[--><!--]--> COMMANDS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/download.md" class="" aria-label="DOWNLOAD"><!--[--><!--]--> DOWNLOAD <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="SOLUTIONS"><span class="title">SOLUTIONS</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="SOLUTIONS"><span class="title">SOLUTIONS</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="Microservice solutions"><!--[--><!--]--><span>Microservice solutions</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">open in new window</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="Distributed transaction solutions"><!--[--><!--]--><span>Distributed transaction solutions</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">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/aha
<span class="token string">&quot;C1 CompilerThread0&quot;</span> <span class="token punctuation">[</span>Internal<span class="token punctuation">]</span> <span class="token assign-left variable">cpuUsage</span><span class="token operator">=</span><span class="token number">1.63</span>% <span class="token assign-left variable">deltaTime</span><span class="token operator">=</span>3ms <span class="token assign-left variable">time</span><span class="token operator">=</span>1170ms
<span class="token string">&quot;arthas-command-execute&quot;</span> <span class="token assign-left variable">Id</span><span class="token operator">=</span><span class="token number">23</span> <span class="token assign-left variable">cpuUsage</span><span class="token operator">=</span><span class="token number">0.11</span>% <span class="token assign-left variable">deltaTime</span><span class="token operator">=</span>0ms <span class="token assign-left variable">time</span><span class="token operator">=</span>401ms RUNNABLE
at java.management@11.0.7/sun.management.ThreadImpl.dumpThreads0<span class="token punctuation">(</span>Native Method<span class="token punctuation">)</span>
at java.management@11.0.7/sun.management.ThreadImpl.getThreadInfo<span class="token punctuation">(</span>ThreadImpl.java:466<span class="token punctuation">)</span>
at com.taobao.arthas.core.command.monitor200.ThreadCommand.processTopBusyThreads<span class="token punctuation">(</span>ThreadCommand.java:199<span class="token punctuation">)</span>
at com.taobao.arthas.core.command.monitor200.ThreadCommand.process<span class="token punctuation">(</span>ThreadCommand.java:122<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.process<span class="token punctuation">(</span>AnnotatedCommandImpl.java:82<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.access<span class="token variable">$100</span><span class="token punctuation">(</span>AnnotatedCommandImpl.java:18<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl<span class="token variable">$ProcessHandler</span>.handle<span class="token punctuation">(</span>AnnotatedCommandImpl.java:111<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl<span class="token variable">$ProcessHandler</span>.handle<span class="token punctuation">(</span>AnnotatedCommandImpl.java:108<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.system.impl.ProcessImpl<span class="token variable">$CommandProcessTask</span>.run<span class="token punctuation">(</span>ProcessImpl.java:385<span class="token punctuation">)</span>
at java.base@11.0.7/java.util.concurrent.Executors<span class="token variable">$RunnableAdapter</span>.call<span class="token punctuation">(</span>Executors.java:515<span class="token punctuation">)</span>
at java.base@11.0.7/java.util.concurrent.FutureTask.run<span class="token punctuation">(</span>FutureTask.java:264<span class="token punctuation">)</span>
at java.base@11.0.7/java.util.concurrent.ScheduledThreadPoolExecutor<span class="token variable">$ScheduledFutureTask</span>.run<span class="token punctuation">(</span>ScheduledThreadPoolExecutor.java:304<span class="token punctuation">)</span>
at java.base@11.0.7/java.util.concurrent.ThreadPoolExecutor.runWorker<span class="token punctuation">(</span>ThreadPoolExecutor.java:1128<span class="token punctuation">)</span>
at java.base@11.0.7/java.util.concurrent.ThreadPoolExecutor<span class="token variable">$Worker</span>.run<span class="token punctuation">(</span>ThreadPoolExecutor.java:628<span class="token punctuation">)</span>
at java.base@11.0.7/java.lang.Thread.run<span class="token punctuation">(</span>Thread.java:834<span class="token punctuation">)</span>
<span class="token string">&quot;VM Periodic Task Thread&quot;</span> <span class="token punctuation">[</span>Internal<span class="token punctuation">]</span> <span class="token assign-left variable">cpuUsage</span><span class="token operator">=</span><span class="token number">0.07</span>% <span class="token assign-left variable">deltaTime</span><span class="token operator">=</span>0ms <span class="token assign-left variable">time</span><span class="token operator">=</span>584ms
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 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 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 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><ul><li>Without thread ID, including <code>[Internal]</code> means JVM internal thread, refer to the introduction of <a href="/en/doc/dashboard.html" class="">dashboard</a> command.</li><li><code>cpuUsage</code> is the CPU usage of the thread during the sampling interval, consistent with the data of the <a href="/en/doc/dashboard.html" class="">dashboard</a> command.</li><li><code>deltaTime</code> is the incremental CPU time of the thread during the sampling interval. If it is less than 1ms, it will be rounded and displayed as 0ms.</li><li><code>time</code> The total CPU time of thread.</li></ul><p><strong>Note:</strong> The thread stack is acquired at the end of the second sampling, which does not indicate that the thread is processing the same task during the sampling interval. It is recommended that the interval time should not be too long. The larger the interval time, the more inaccurate.</p><p>You can try to specify different intervals according to the specific situation and observe the output results.</p><h3 id="list-first-page-threads-info-when-no-options-provided" tabindex="-1"><a class="header-anchor" href="#list-first-page-threads-info-when-no-options-provided" aria-hidden="true">#</a> List first page threads&#39; info when no options provided</h3><p>By default, they are arranged in descending order of CPU increment time, and only the first page of data is displayed.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ thread
Threads Total: <span class="token number">33</span>, NEW: <span class="token number">0</span>, RUNNABLE: <span class="token number">9</span>, BLOCKED: <span class="token number">0</span>, WAITING: <span class="token number">3</span>, TIMED_WAITING: <span class="token number">4</span>, TERMINATED: <span class="token number">0</span>, Internal threads: <span class="token number">17</span>
ID NAME GROUP PRIORITY STATE %CPU DELTA_TIME TIME INTERRUPT DAEMON
3 years ago
<span class="token parameter variable">-1</span> C2 CompilerThread0 - <span class="token parameter variable">-1</span> - <span class="token number">5.06</span> <span class="token number">0.010</span> <span class="token number">0</span>:0.973 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token parameter variable">-1</span> C1 CompilerThread0 - <span class="token parameter variable">-1</span> - <span class="token number">0.95</span> <span class="token number">0.001</span> <span class="token number">0</span>:0.603 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">23</span> arthas-command-execute system <span class="token number">5</span> RUNNABLE <span class="token number">0.17</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.226 <span class="token boolean">false</span> <span class="token boolean">true</span>
3 years ago
<span class="token parameter variable">-1</span> VM Periodic Task Thread - <span class="token parameter variable">-1</span> - <span class="token number">0.05</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.094 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token parameter variable">-1</span> Sweeper thread - <span class="token parameter variable">-1</span> - <span class="token number">0.04</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.011 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token parameter variable">-1</span> G1 Young RemSet Sampling - <span class="token parameter variable">-1</span> - <span class="token number">0.02</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.025 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">12</span> Attach Listener system <span class="token number">9</span> RUNNABLE <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.022 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">11</span> Common-Cleaner InnocuousThrea <span class="token number">8</span> TIMED_WAI <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.000 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">3</span> Finalizer system <span class="token number">8</span> WAITING <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.000 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">2</span> Reference Handler system <span class="token number">10</span> RUNNABLE <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.000 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">4</span> Signal Dispatcher system <span class="token number">9</span> RUNNABLE <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.000 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">15</span> arthas-NettyHttpTelnetBootstra system <span class="token number">5</span> RUNNABLE <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.029 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">22</span> arthas-NettyHttpTelnetBootstra system <span class="token number">5</span> RUNNABLE <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.196 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">24</span> arthas-NettyHttpTelnetBootstra system <span class="token number">5</span> RUNNABLE <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.038 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">16</span> arthas-NettyWebsocketTtyBootst system <span class="token number">5</span> RUNNABLE <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.001 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">17</span> arthas-NettyWebsocketTtyBootst system <span class="token number">5</span> RUNNABLE <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.001 <span class="token boolean">false</span> <span class="token boolean">true</span>
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 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 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 class="line-number"></div><div class="line-number"></div></div></div><h3 id="thread-all-show-all-matching-threads" tabindex="-1"><a class="header-anchor" href="#thread-all-show-all-matching-threads" aria-hidden="true">#</a> thread --all, show all matching threads</h3><p>Display all matching threads. Sometimes it is necessary to obtain all the thread data of the JVM for analysis.</p><h3 id="thread-id-show-the-running-stack-for-the-target-thread" tabindex="-1"><a class="header-anchor" href="#thread-id-show-the-running-stack-for-the-target-thread" aria-hidden="true">#</a> thread id, show the running stack for the target thread</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ thread <span class="token number">1</span>
<span class="token string">&quot;main&quot;</span> <span class="token assign-left variable">Id</span><span class="token operator">=</span><span class="token number">1</span> WAITING on java.util.concurrent.CountDownLatch<span class="token variable">$Sync</span>@29fafb28
at sun.misc.Unsafe.park<span class="token punctuation">(</span>Native Method<span class="token punctuation">)</span>
- waiting on java.util.concurrent.CountDownLatch<span class="token variable">$Sync</span>@29fafb28
at java.util.concurrent.locks.LockSupport.park<span class="token punctuation">(</span>LockSupport.java:175<span class="token punctuation">)</span>
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt<span class="token punctuation">(</span>AbstractQueuedSynchronizer.java:836<span class="token punctuation">)</span>
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly<span class="token punctuation">(</span>AbstractQueuedSynchronizer.java:997<span class="token punctuation">)</span>
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly<span class="token punctuation">(</span>AbstractQueuedSynchronizer.java:1304<span class="token punctuation">)</span>
at java.util.concurrent.CountDownLatch.await<span class="token punctuation">(</span>CountDownLatch.java:231<span class="token punctuation">)</span>
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 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><h3 id="thread-b-locate-the-thread-bocking-the-others" tabindex="-1"><a class="header-anchor" href="#thread-b-locate-the-thread-bocking-the-others" aria-hidden="true">#</a> thread -b, locate the thread bocking the others</h3><p>In some occasions, we experience the whole application is stuck because there&#39;s one particular thread hold one lock that other threads are relying on. To diagnose such an issue, Arthas provides <code>thread -b</code> to find the problematic thread in one single command.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ thread <span class="token parameter variable">-b</span>
<span class="token string">&quot;http-bio-8080-exec-4&quot;</span> <span class="token assign-left variable">Id</span><span class="token operator">=</span><span class="token number">27</span> TIMED_WAITING
at java.lang.Thread.sleep<span class="token punctuation">(</span>Native Method<span class="token punctuation">)</span>
at test.arthas.TestThreadBlocking.doGet<span class="token punctuation">(</span>TestThreadBlocking.java:22<span class="token punctuation">)</span>
- locked java.lang.Object@725be470 <span class="token operator">&lt;</span>---- but blocks <span class="token number">4</span> other threads<span class="token operator">!</span>
at javax.servlet.http.HttpServlet.service<span class="token punctuation">(</span>HttpServlet.java:624<span class="token punctuation">)</span>
at javax.servlet.http.HttpServlet.service<span class="token punctuation">(</span>HttpServlet.java:731<span class="token punctuation">)</span>
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter<span class="token punctuation">(</span>ApplicationFilterChain.java:303<span class="token punctuation">)</span>
at org.apache.catalina.core.ApplicationFilterChain.doFilter<span class="token punctuation">(</span>ApplicationFilterChain.java:208<span class="token punctuation">)</span>
at org.apache.tomcat.websocket.server.WsFilter.doFilter<span class="token punctuation">(</span>WsFilter.java:52<span class="token punctuation">)</span>
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter<span class="token punctuation">(</span>ApplicationFilterChain.java:241<span class="token punctuation">)</span>
at org.apache.catalina.core.ApplicationFilterChain.doFilter<span class="token punctuation">(</span>ApplicationFilterChain.java:208<span class="token punctuation">)</span>
at test.filter.TestDurexFilter.doFilter<span class="token punctuation">(</span>TestDurexFilter.java:46<span class="token punctuation">)</span>
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter<span class="token punctuation">(</span>ApplicationFilterChain.java:241<span class="token punctuation">)</span>
at org.apache.catalina.core.ApplicationFilterChain.doFilter<span class="token punctuation">(</span>ApplicationFilterChain.java:208<span class="token punctuation">)</span>
at org.apache.catalina.core.StandardWrapperValve.invoke<span class="token punctuation">(</span>StandardWrapperValve.java:220<span class="token punctuation">)</span>
at org.apache.catalina.core.StandardContextValve.invoke<span class="token punctuation">(</span>StandardContextValve.java:122<span class="token punctuation">)</span>
at org.apache.catalina.authenticator.AuthenticatorBase.invoke<span class="token punctuation">(</span>AuthenticatorBase.java:505<span class="token punctuation">)</span>
at com.taobao.tomcat.valves.ContextLoadFilterValve<span class="token variable">$FilterChainAdapter</span>.doFilter<span class="token punctuation">(</span>ContextLoadFilterValve.java:191<span class="token punctuation">)</span>
at com.taobao.eagleeye.EagleEyeFilter.doFilter<span class="token punctuation">(</span>EagleEyeFilter.java:81<span class="token punctuation">)</span>
at com.taobao.tomcat.valves.ContextLoadFilterValve.invoke<span class="token punctuation">(</span>ContextLoadFilterValve.java:150<span class="token punctuation">)</span>
at org.apache.catalina.core.StandardHostValve.invoke<span class="token punctuation">(</span>StandardHostValve.java:170<span class="token punctuation">)</span>
at org.apache.catalina.valves.ErrorReportValve.invoke<span class="token punctuation">(</span>ErrorReportValve.java:103<span class="token punctuation">)</span>
at org.apache.catalina.core.StandardEngineValve.invoke<span class="token punctuation">(</span>StandardEngineValve.java:116<span class="token punctuation">)</span>
at org.apache.catalina.connector.CoyoteAdapter.service<span class="token punctuation">(</span>CoyoteAdapter.java:429<span class="token punctuation">)</span>
at org.apache.coyote.http11.AbstractHttp11Processor.process<span class="token punctuation">(</span>AbstractHttp11Processor.java:1085<span class="token punctuation">)</span>
at org.apache.coyote.AbstractProtocol<span class="token variable">$AbstractConnectionHandler</span>.process<span class="token punctuation">(</span>AbstractProtocol.java:625<span class="token punctuation">)</span>
at org.apache.tomcat.util.net.JIoEndpoint<span class="token variable">$SocketProcessor</span>.run<span class="token punctuation">(</span>JIoEndpoint.java:318<span class="token punctuation">)</span>
- locked org.apache.tomcat.util.net.SocketWrapper@7127ee12
at java.util.concurrent.ThreadPoolExecutor.runWorker<span class="token punctuation">(</span>ThreadPoolExecutor.java:1142<span class="token punctuation">)</span>
at java.util.concurrent.ThreadPoolExecutor<span class="token variable">$Worker</span>.run<span class="token punctuation">(</span>ThreadPoolExecutor.java:617<span class="token punctuation">)</span>
at org.apache.tomcat.util.threads.TaskThread<span class="token variable">$WrappingRunnable</span>.run<span class="token punctuation">(</span>TaskThread.java:61<span class="token punctuation">)</span>
at java.lang.Thread.run<span class="token punctuation">(</span>Thread.java:745<span class="token punctuation">)</span>
Number of locked synchronizers <span class="token operator">=</span> <span class="token number">1</span>
- java.util.concurrent.ThreadPoolExecutor<span class="token variable">$Worker</span>@31a6493e
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 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 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 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 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 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><blockquote><p>Note: By now Arthas only supports to locate the thread blocked by <code>synchronzied</code>, while <code>java.util.concurrent.Lock</code> is not supported yet.</p></blockquote><h3 id="thread-i-specify-the-sampling-interval" tabindex="-1"><a class="header-anchor" href="#thread-i-specify-the-sampling-interval" aria-hidden="true">#</a> thread -i, specify the sampling interval</h3><ul><li><p><code>thread -i 1000</code>: Count the thread cpu time of the last 1000ms.</p></li><li><p><code>thread -n 3 -i 1000</code>: List the 3 busiest thread stacks in 1000ms</p></li></ul><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ thread <span class="token parameter variable">-n</span> <span class="token number">3</span> <span class="token parameter variable">-i</span> <span class="token number">1000</span>
<span class="token string">&quot;as-command-execute-daemon&quot;</span> <span class="token assign-left variable">Id</span><span class="token operator">=</span><span class="token number">4759</span> <span class="token assign-left variable">cpuUsage</span><span class="token operator">=</span><span class="token number">23</span>% RUNNABLE
at sun.management.ThreadImpl.dumpThreads0<span class="token punctuation">(</span>Native Method<span class="token punctuation">)</span>
at sun.management.ThreadImpl.getThreadInfo<span class="token punctuation">(</span>ThreadImpl.java:440<span class="token punctuation">)</span>
at com.taobao.arthas.core.command.monitor200.ThreadCommand.processTopBusyThreads<span class="token punctuation">(</span>ThreadCommand.java:133<span class="token punctuation">)</span>
at com.taobao.arthas.core.command.monitor200.ThreadCommand.process<span class="token punctuation">(</span>ThreadCommand.java:79<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.process<span class="token punctuation">(</span>AnnotatedCommandImpl.java:96<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.access<span class="token variable">$100</span><span class="token punctuation">(</span>AnnotatedCommandImpl.java:27<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl<span class="token variable">$ProcessHandler</span>.handle<span class="token punctuation">(</span>AnnotatedCommandImpl.java:125<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl<span class="token variable">$ProcessHandler</span>.handle<span class="token punctuation">(</span>AnnotatedCommandImpl.java:122<span class="token punctuation">)</span>
at com.taobao.arthas.core.shell.system.impl.ProcessImpl<span class="token variable">$CommandProcessTask</span>.run<span class="token punctuation">(</span>ProcessImpl.java:332<span class="token punctuation">)</span>
at java.util.concurrent.ThreadPoolExecutor.runWorker<span class="token punctuation">(</span>ThreadPoolExecutor.java:1142<span class="token punctuation">)</span>
at java.util.concurrent.ThreadPoolExecutor<span class="token variable">$Worker</span>.run<span class="token punctuation">(</span>ThreadPoolExecutor.java:617<span class="token punctuation">)</span>
at java.lang.Thread.run<span class="token punctuation">(</span>Thread.java:756<span class="token punctuation">)</span>
Number of locked synchronizers <span class="token operator">=</span> <span class="token number">1</span>
- java.util.concurrent.ThreadPoolExecutor<span class="token variable">$Worker</span>@546aeec1
<span class="token punctuation">..</span>.
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 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 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 class="line-number"></div></div></div><h3 id="thread-state-view-the-special-state-theads" tabindex="-1"><a class="header-anchor" href="#thread-state-view-the-special-state-theads" aria-hidden="true">#</a> thread --state , view the special state theads</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@28114<span class="token punctuation">]</span>$ thread <span class="token parameter variable">--state</span> WAITING
Threads Total: <span class="token number">16</span>, NEW: <span class="token number">0</span>, RUNNABLE: <span class="token number">9</span>, BLOCKED: <span class="token number">0</span>, WAITING: <span class="token number">3</span>, TIMED_WAITING: <span class="token number">4</span>, TERMINATED: <span class="token number">0</span>
ID NAME GROUP PRIORITY STATE %CPU DELTA_TIME TIME INTERRUPTE DAEMON
<span class="token number">3</span> Finalizer system <span class="token number">8</span> WAITING <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.000 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">20</span> arthas-UserStat system <span class="token number">9</span> WAITING <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.001 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">14</span> arthas-timer system <span class="token number">9</span> WAITING <span class="token number">0.0</span> <span class="token number">0.000</span> <span class="token number">0</span>:0.000 <span class="token boolean">false</span> <span class="token boolean">true</span>
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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></div><!--[--><!--]--></div><footer class="page-meta right-menu-padding" data-v-fdd717e0><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/alibaba/arthas/edit/master/site/docs/en/doc/thread.md" rel="noopener noreferrer" target="_blank" aria-label="Edit this page on GitHub"><!--[--><!--]--><span>Edit this page on 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">open in new window</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">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: hengyunabc@gmail.com">hengyunabc</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: i@fatpandac.com">Fatpandac</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: LHearen@126.com">Hearen</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: hollowman186@vip.qq.com">Hollow Man</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: lhearen@gmail.com">LHearen</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: ian.luo@gmail.com">beiwei30</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: kylixs@qq.com">gongdewei</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: oldratlee@gmail.com">李鼎</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-fdd717e0><p class="inner"><span class="prev"><a href="/en/doc/sysprop.html" class="" aria-label="sysprop"><!--[--><!--]--> sysprop <!--[--><!--]--></a></span><span class="next"><a href="/en/doc/vmoption.html" class="" aria-label="vmoption"><!--[--><!--]--> vmoption <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
3 years ago
<script type="module" src="/assets/app.b8f28394.js" defer></script>
</body>
</html>