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

543 lines
30 KiB
HTML

7 years ago
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="zh-CN" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="zh-CN" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
4 years ago
<title>thread &mdash; Arthas 3.4.6 文档</title>
7 years ago
7 years ago
<link rel="shortcut icon" href="_static/favicon.ico"/>
7 years ago
6 years ago
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
7 years ago
6 years ago
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/translations.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
7 years ago
6 years ago
7 years ago
6 years ago
7 years ago
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="索引" href="genindex.html" />
<link rel="search" title="搜索" href="search.html" />
<link rel="next" title="jvm" href="jvm.html" />
<link rel="prev" title="dashboard" href="dashboard.html" />
5 years ago
<script>
if (window.location.href.startsWith("https://alibaba.github.io/arthas/")) {
window.location.href = "https://arthas.aliyun.com/doc/" + window.location.href.substr("https://alibaba.github.io/arthas/".length);
}
</script>
7 years ago
<script src="_static/center_page.js"></script>
5 years ago
<link rel="stylesheet" href="https://g.alicdn.com/code/lib/highlight.js/9.13.1/styles/github.min.css">
7 years ago
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
6 years ago
<div class="wy-side-nav-search" >
7 years ago
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
4 years ago
3.4.6
7 years ago
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
5 years ago
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/">首页</a></li>
4 years ago
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
5 years ago
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
5 years ago
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
4 years ago
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(katacoda)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(阿里云)</a></li>
7 years ago
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
7 years ago
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">进阶使用</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">命令列表</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">thread</a><ul>
6 years ago
<li class="toctree-l3"><a class="reference internal" href="#id1">参数说明</a></li>
5 years ago
<li class="toctree-l3"><a class="reference internal" href="#cpu">cpu使用率是如何统计出来的</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#id2">工作原理说明:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#id3">使用参考</a><ul>
7 years ago
<li class="toctree-l4"><a class="reference internal" href="#n">支持一键展示当前最忙的前N个线程并打印堆栈</a></li>
5 years ago
<li class="toctree-l4"><a class="reference internal" href="#id4">当没有参数时,显示第一页线程的信息</a></li>
<li class="toctree-l4"><a class="reference internal" href="#thread-all">thread all, 显示所有匹配的线程</a></li>
<li class="toctree-l4"><a class="reference internal" href="#thread-id">thread id, 显示指定线程的运行堆栈</a></li>
7 years ago
<li class="toctree-l4"><a class="reference internal" href="#thread-b">thread -b, 找出当前阻塞其他线程的线程</a></li>
<li class="toctree-l4"><a class="reference internal" href="#thread-i">thread -i, 指定采样时间间隔</a></li>
5 years ago
<li class="toctree-l4"><a class="reference internal" href="#thread-state">thread state ,查看指定状态的线程</a></li>
7 years ago
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysenv.html">sysenv</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="vmoption.html">vmoption</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="perfcounter.html">perfcounter</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="logger.html">logger</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="mbean.html">mbean</a></li>
7 years ago
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="ognl.html">ognl</a></li>
7 years ago
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="heapdump.html">heapdump</a></li>
7 years ago
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
4 years ago
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
7 years ago
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="profiler.html">profiler</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
4 years ago
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
7 years ago
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas">Arthas 基础命令</a></li>
</ul>
</li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
4 years ago
<li class="toctree-l1"><a class="reference internal" href="tunnel.html">Arthas Tunnel</a></li>
5 years ago
<li class="toctree-l1"><a class="reference internal" href="http-api.html">Http API</a></li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
5 years ago
<li class="toctree-l1"><a class="reference internal" href="spring-boot-starter.html">Arthas Spring Boot Starter</a></li>
5 years ago
<li class="toctree-l1"><a class="reference internal" href="idea-plugin.html">IDEA 插件</a></li>
7 years ago
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
4 years ago
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ/常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Star me at GitHub</a></li>
6 years ago
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md#">编译调试/参与贡献</a></li>
6 years ago
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
7 years ago
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">命令列表</a> &raquo;</li>
<li>thread</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/thread.md" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="thread">
6 years ago
<h1>thread<a class="headerlink" href="#thread" title="永久链接至标题"></a></h1>
5 years ago
<p><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&amp;id=command-thread"><code class="docutils literal notranslate"><span class="pre">thread</span></code>在线教程</a></p>
7 years ago
<blockquote>
6 years ago
<div><p>查看当前线程信息,查看线程的堆栈</p>
</div></blockquote>
<div class="section" id="id1">
<h2>参数说明<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
7 years ago
<table border="1" class="docutils">
<thead>
<tr>
<th align="right">参数名称</th>
<th align="left">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right"><em>id</em></td>
<td align="left">线程id</td>
</tr>
<tr>
<td align="right">[n:]</td>
<td align="left">指定最忙的前N个线程并打印堆栈</td>
</tr>
<tr>
<td align="right">[b]</td>
<td align="left">找出当前阻塞其他线程的线程</td>
</tr>
<tr>
<td align="right">[i <code>&lt;value&gt;</code>]</td>
5 years ago
<td align="left">指定cpu使用率统计的采样间隔单位为毫秒默认值为200</td>
</tr>
<tr>
<td align="right">[--all]</td>
<td align="left">显示所有匹配的线程</td>
7 years ago
</tr>
</tbody>
5 years ago
</table></div>
<div class="section" id="cpu">
<h2>cpu使用率是如何统计出来的<a class="headerlink" href="#cpu" title="永久链接至标题"></a></h2>
<p>这里的cpu使用率与linux 命令<code class="docutils literal notranslate"><span class="pre">top</span> <span class="pre">-H</span> <span class="pre">-p</span> <span class="pre">&lt;pid&gt;</span></code> 的线程<code class="docutils literal notranslate"><span class="pre">%CPU</span></code>类似一段采样间隔时间内当前JVM里各个线程的增量cpu时间与采样间隔时间的比例。</p>
<div class="section" id="id2">
<h3>工作原理说明:<a class="headerlink" href="#id2" title="永久链接至标题"></a></h3>
<ul class="simple">
<li><p>首先第一次采样获取所有线程的CPU时间(调用的是<code class="docutils literal notranslate"><span class="pre">java.lang.management.ThreadMXBean#getThreadCpuTime()</span></code><code class="docutils literal notranslate"><span class="pre">sun.management.HotspotThreadMBean.getInternalThreadCpuTimes()</span></code>接口)</p></li>
<li><p>然后睡眠等待一个间隔时间默认为200ms可以通过<code class="docutils literal notranslate"><span class="pre">-i</span></code>指定间隔时间)</p></li>
<li><p>再次第二次采样获取所有线程的CPU时间对比两次采样数据计算出每个线程的增量CPU时间</p></li>
<li><p>线程CPU使用率 = 线程增量CPU时间 / 采样间隔时间 * 100%</p></li>
</ul>
7 years ago
<blockquote>
6 years ago
<div><p>注意: 这个统计也会产生一定的开销JDK这个接口本身开销比较大因此会看到as的线程占用一定的百分比为了降低统计自身的开销带来的影响可以把采样间隔拉长一些比如5000毫秒。</p>
</div></blockquote>
7 years ago
<blockquote>
5 years ago
<div><p>另外一种查看Java进程的线程cpu使用率方法可以使用<a class="reference external" href="https://github.com/oldratlee/useful-scripts/blob/master/docs/java.md#-show-busy-java-threads">show-busy-java-threads</a>这个脚本</p>
6 years ago
</div></blockquote>
7 years ago
</div>
5 years ago
</div>
<div class="section" id="id3">
<h2>使用参考<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
7 years ago
<div class="section" id="n">
6 years ago
<h3>支持一键展示当前最忙的前N个线程并打印堆栈<a class="headerlink" href="#n" title="永久链接至标题"></a></h3>
6 years ago
<div class="highlight-shell notranslate"><div class="highlight hljs"><pre class="shell">$ thread -n 3
5 years ago
&quot;C1 CompilerThread0&quot; [Internal] cpuUsage=1.63% deltaTime=3ms time=1170ms
&quot;arthas-command-execute&quot; Id=23 cpuUsage=0.11% deltaTime=0ms time=401ms RUNNABLE
at java.management@11.0.7/sun.management.ThreadImpl.dumpThreads0(Native Method)
at java.management@11.0.7/sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:466)
at com.taobao.arthas.core.command.monitor200.ThreadCommand.processTopBusyThreads(ThreadCommand.java:199)
at com.taobao.arthas.core.command.monitor200.ThreadCommand.process(ThreadCommand.java:122)
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.process(AnnotatedCommandImpl.java:82)
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.access$100(AnnotatedCommandImpl.java:18)
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl$ProcessHandler.handle(AnnotatedCommandImpl.java:111)
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl$ProcessHandler.handle(AnnotatedCommandImpl.java:108)
at com.taobao.arthas.core.shell.system.impl.ProcessImpl$CommandProcessTask.run(ProcessImpl.java:385)
at java.base@11.0.7/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base@11.0.7/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base@11.0.7/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base@11.0.7/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base@11.0.7/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base@11.0.7/java.lang.Thread.run(Thread.java:834)
&quot;VM Periodic Task Thread&quot; [Internal] cpuUsage=0.07% deltaTime=0ms time=584ms</pre></div>
7 years ago
</div>
5 years ago
<ul class="simple">
<li><p>没有线程ID包含<code class="docutils literal notranslate"><span class="pre">[Internal]</span></code>表示为JVM内部线程参考<a class="reference internal" href="dashboard.html"><span class="doc">dashboard</span></a>命令的介绍。</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">cpuUsage</span></code>为采样间隔时间内线程的CPU使用率<a class="reference internal" href="dashboard.html"><span class="doc">dashboard</span></a>命令的数据一致。</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">deltaTime</span></code>为采样间隔时间内线程的增量CPU时间小于1ms时被取整显示为0ms。</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">time</span></code> 线程运行总CPU时间。</p></li>
</ul>
<p>注意:线程栈为第二采样结束时获取,不能表明采样间隔时间内该线程都是在处理相同的任务。建议间隔时间不要太长,可能间隔时间越大越不准确。
可以根据具体情况尝试指定不同的间隔时间,观察输出结果。</p>
7 years ago
</div>
5 years ago
<div class="section" id="id4">
<h3>当没有参数时,显示第一页线程的信息<a class="headerlink" href="#id4" title="永久链接至标题"></a></h3>
<p>默认按照CPU增量时间降序排列只显示第一页数据。</p>
6 years ago
<div class="highlight-shell notranslate"><div class="highlight hljs"><pre class="shell">$ thread
5 years ago
Threads Total: 33, NEW: 0, RUNNABLE: 9, BLOCKED: 0, WAITING: 3, TIMED_WAITING: 4, TERMINATED: 0, Internal threads: 17
ID NAME GROUP PRIORITY STATE %CPU DELTA_TIME TIME INTERRUPT DAEMON
-1 C2 CompilerThread0 - -1 - 5.06 0.010 0:0.973 false true
-1 C1 CompilerThread0 - -1 - 0.95 0.001 0:0.603 false true
23 arthas-command-execute system 5 RUNNABLE 0.17 0.000 0:0.226 false true
-1 VM Periodic Task Thread - -1 - 0.05 0.000 0:0.094 false true
-1 Sweeper thread - -1 - 0.04 0.000 0:0.011 false true
-1 G1 Young RemSet Sampling - -1 - 0.02 0.000 0:0.025 false true
12 Attach Listener system 9 RUNNABLE 0.0 0.000 0:0.022 false true
11 Common-Cleaner InnocuousThrea 8 TIMED_WAI 0.0 0.000 0:0.000 false true
3 Finalizer system 8 WAITING 0.0 0.000 0:0.000 false true
2 Reference Handler system 10 RUNNABLE 0.0 0.000 0:0.000 false true
4 Signal Dispatcher system 9 RUNNABLE 0.0 0.000 0:0.000 false true
15 arthas-NettyHttpTelnetBootstra system 5 RUNNABLE 0.0 0.000 0:0.029 false true
22 arthas-NettyHttpTelnetBootstra system 5 RUNNABLE 0.0 0.000 0:0.196 false true
24 arthas-NettyHttpTelnetBootstra system 5 RUNNABLE 0.0 0.000 0:0.038 false true
16 arthas-NettyWebsocketTtyBootst system 5 RUNNABLE 0.0 0.000 0:0.001 false true
17 arthas-NettyWebsocketTtyBootst system 5 RUNNABLE 0.0 0.000 0:0.001 false true</pre></div>
</div>
7 years ago
</div>
5 years ago
<div class="section" id="thread-all">
<h3>thread all, 显示所有匹配的线程<a class="headerlink" href="#thread-all" title="永久链接至标题"></a></h3>
<p>显示所有匹配线程信息有时需要获取全部JVM的线程数据进行分析。</p>
7 years ago
</div>
<div class="section" id="thread-id">
5 years ago
<h3>thread id, 显示指定线程的运行堆栈<a class="headerlink" href="#thread-id" title="永久链接至标题"></a></h3>
6 years ago
<div class="highlight-shell notranslate"><div class="highlight hljs"><pre class="shell">$ thread 1
&quot;main&quot; Id=1 WAITING on java.util.concurrent.CountDownLatch$Sync@29fafb28
at sun.misc.Unsafe.park(Native Method)
- waiting on java.util.concurrent.CountDownLatch$Sync@29fafb28
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
6 years ago
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)</pre></div>
7 years ago
</div>
</div>
<div class="section" id="thread-b">
6 years ago
<h3>thread -b, 找出当前阻塞其他线程的线程<a class="headerlink" href="#thread-b" title="永久链接至标题"></a></h3>
<p>有时候我们发现应用卡住了, 通常是由于某个线程拿住了某个锁, 并且其他线程都在等待这把锁造成的。 为了排查这类问题, arthas提供了<code class="docutils literal notranslate"><span class="pre">thread</span> <span class="pre">-b</span></code> 一键找出那个罪魁祸首。</p>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ thread -b
&quot;http-bio-8080-exec-4&quot; Id=27 TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at test.arthas.TestThreadBlocking.doGet(TestThreadBlocking.java:22)
- locked java.lang.Object@725be470 &lt;---- but blocks 4 other threads!
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at test.filter.TestDurexFilter.doFilter(TestDurexFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at com.taobao.tomcat.valves.ContextLoadFilterValve$FilterChainAdapter.doFilter(ContextLoadFilterValve.java:191)
at com.taobao.eagleeye.EagleEyeFilter.doFilter(EagleEyeFilter.java:81)
at com.taobao.tomcat.valves.ContextLoadFilterValve.invoke(ContextLoadFilterValve.java:150)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:429)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
7 years ago
- locked org.apache.tomcat.util.net.SocketWrapper@7127ee12
6 years ago
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
7 years ago
6 years ago
Number of locked synchronizers = 1
6 years ago
- java.util.concurrent.ThreadPoolExecutor$Worker@31a6493e</pre></div>
7 years ago
</div>
<blockquote>
6 years ago
<div><p>注意, 目前只支持找出synchronized关键字阻塞住的线程 如果是<code class="docutils literal notranslate"><span class="pre">java.util.concurrent.Lock</span></code> 目前还不支持。</p>
</div></blockquote>
7 years ago
</div>
<div class="section" id="thread-i">
6 years ago
<h3>thread -i, 指定采样时间间隔<a class="headerlink" href="#thread-i" title="永久链接至标题"></a></h3>
5 years ago
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">thread</span> <span class="pre">-i</span> <span class="pre">1000</span></code> : 统计最近1000ms内的线程CPU时间。</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">thread</span> <span class="pre">-n</span> <span class="pre">3</span> <span class="pre">-i</span> <span class="pre">1000</span></code> : 列出1000ms内最忙的3个线程栈</p></li>
</ul>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ thread -n 3 -i 1000
&quot;as-command-execute-daemon&quot; Id=4759 cpuUsage=23% RUNNABLE
at sun.management.ThreadImpl.dumpThreads0(Native Method)
at sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:440)
at com.taobao.arthas.core.command.monitor200.ThreadCommand.processTopBusyThreads(ThreadCommand.java:133)
at com.taobao.arthas.core.command.monitor200.ThreadCommand.process(ThreadCommand.java:79)
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.process(AnnotatedCommandImpl.java:96)
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.access$100(AnnotatedCommandImpl.java:27)
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl$ProcessHandler.handle(AnnotatedCommandImpl.java:125)
at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl$ProcessHandler.handle(AnnotatedCommandImpl.java:122)
at com.taobao.arthas.core.shell.system.impl.ProcessImpl$CommandProcessTask.run(ProcessImpl.java:332)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:756)
Number of locked synchronizers = 1
- java.util.concurrent.ThreadPoolExecutor$Worker@546aeec1
6 years ago
...</pre></div>
7 years ago
</div>
</div>
5 years ago
<div class="section" id="thread-state">
<h3>thread state ,查看指定状态的线程<a class="headerlink" href="#thread-state" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">[arthas@28114]$ thread --state WAITING
5 years ago
Threads Total: 16, NEW: 0, RUNNABLE: 9, BLOCKED: 0, WAITING: 3, TIMED_WAITING: 4, TERMINATED: 0
ID NAME GROUP PRIORITY STATE %CPU DELTA_TIME TIME INTERRUPTE DAEMON
3 Finalizer system 8 WAITING 0.0 0.000 0:0.000 false true
20 arthas-UserStat system 9 WAITING 0.0 0.000 0:0.001 false true
14 arthas-timer system 9 WAITING 0.0 0.000 0:0.000 false true</pre></div>
5 years ago
</div>
</div>
7 years ago
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="jvm.html" class="btn btn-neutral float-right" title="jvm" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
6 years ago
<a href="dashboard.html" class="btn btn-neutral float-left" title="dashboard" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
7 years ago
</div>
<hr/>
<div role="contentinfo">
<p>
5 years ago
&copy; Copyright 2018-2020, Alibaba Middleware Group, and contributors
7 years ago
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
6 years ago
7 years ago
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
6 years ago
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>
7 years ago
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
7 years ago
5 years ago
<script src="https://g.alicdn.com/code/lib/highlight.js/9.13.1/highlight.min.js"></script>
<script src="https://g.alicdn.com/code/lib/highlightjs-line-numbers.js/2.5.0/highlightjs-line-numbers.min.js"></script>
6 years ago
<script>
document.querySelectorAll('div.hljs > pre').forEach(function(block) {
hljs.highlightBlock(block);
hljs.lineNumbersBlock(block);
});
</script>
5 years ago
<script type="text/javascript">document.write(unescape("%3Cspan style='display:none;' id='cnzz_stat_icon_1279151497'%3E%3C/span%3E%3Cscript src='https://s4.cnzz.com/z_stat.php%3Fid%3D1279151497' type='text/javascript'%3E%3C/script%3E"));</script>
5 years ago
7 years ago
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
5 years ago
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
7 years ago
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
5 years ago
7 years ago
</body>
</html>