update doc 3.1.2

pull/1241/head
hengyunabc 5 years ago
parent 1afcb5035d
commit 39091052c1

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>&lt;no title&gt; &mdash; Arthas 3.1.1 文档</title>
<title>&lt;no title&gt; &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -35,21 +43,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -63,7 +66,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -91,15 +94,17 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -180,7 +185,7 @@
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -197,34 +202,16 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

@ -24,9 +24,12 @@
* [jvm](jvm.md)——查看当前 JVM 的信息
* [sysprop](sysprop.md)——查看和修改JVM的系统属性
* [sysenv](sysenv.md)——查看JVM的环境变量
* [vmoption](vmoption.md)——查看和修改JVM里诊断相关的option
* [logger](logger.md)——查看和修改logger
* [getstatic](getstatic.md)——查看类的静态属性
* **New!** [ognl](ognl.md)——执行ognl表达式
* **New!** [mbean](mbean.md)——查看 Mbean 的信息
* [ognl](ognl.md)——执行ognl表达式
* [mbean](mbean.md)——查看 Mbean 的信息
* [heapdump](heapdump.md)——dump java heap, 类似jmap命令的heap dump功能
## class/classloader相关

@ -6,6 +6,8 @@
* [jvm](jvm.md)
* [sysprop](sysprop.md)
* [sysenv](sysenv.md)
* [vmoption](vmoption.md)
* [logger](logger.md)
* [mbean](mbean.md)
* [getstatic](getstatic.md)
@ -14,6 +16,7 @@
* [sc](sc.md)
* [sm](sm.md)
* [dump](dump.md)
* [heapdump](heapdump.md)
* [jad](jad.md)
* [classloader](classloader.md)
@ -39,5 +42,6 @@
* version——输出当前目标 Java 进程所加载的 Arthas 版本号
* history——打印命令历史
* quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响
* stop——和`shutdown`命令一致
* shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出
* [keymap](keymap.md)——Arthas快捷键列表及自定义快捷键

@ -11,13 +11,13 @@
Arthas开源交流钉钉群21965291 ,搜索群号即可加入。
![web console](_static/dingding_qr.jpg)
![](_static/dingding_qr.jpg)
### QQ群
Arthas开源交流QQ群916328269
![web console](_static/qqgroup_qr.jpg)
![](_static/qqgroup_qr.jpg)

@ -58,4 +58,4 @@ uptime 16020s busy
### 截图展示
![alt text](_static/dashboard.png "dashboard")
![](_static/dashboard.png "dashboard")

@ -0,0 +1,23 @@
下载
===
## 下载全量包
最新版本,点击下载:[![](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=doc&v=LATEST)
解压后,在文件夹里有`arthas-boot.jar`,直接用`java -jar`的方式启动:
```bash
java -jar arthas-boot.jar
```
打印帮助信息:
```bash
java -jar arthas-boot.jar -h
```
## 下载离线文档
下载文档:[![](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=doc&v=LATEST)

@ -0,0 +1,34 @@
heapdump
===
> dump java heap, 类似jmap命令的heap dump功能。
### 使用参考
#### dump到指定文件
```bash
[arthas@58205]$ heapdump /tmp/dump.hprof
Dumping heap to /tmp/dump.hprof...
Heap dump file created
```
#### 只dump live对象
```bash
[arthas@58205]$ heapdump --live /tmp/dump.hprof
Dumping heap to /tmp/dump.hprof...
Heap dump file created
```
### dump到临时文件
```bash
[arthas@58205]$ heapdump
Dumping heap to /var/folders/my/wy7c9w9j5732xbkcyt1mb4g40000gp/T/heapdump2019-09-03-16-385121018449645518991.hprof...
Heap dump file created
```

@ -5,7 +5,7 @@ Arthas 用户文档
## Arthas阿尔萨斯 能为你做什么?
![arthas](arthas.png)
![](arthas.png)
`Arthas` 是Alibaba开源的Java诊断工具深受开发者喜爱。
@ -28,15 +28,17 @@ Contents
* [English Docs](https://alibaba.github.io/arthas/en/)
* [在线教程(推荐)](https://alibaba.github.io/arthas/arthas-tutorials?language=cn)
* [安装](install-detail.md)
* [下载](download.md)
* [快速入门](quick-start.md)
* [进阶使用](advanced-use.md)
* [命令列表](commands.md)
* [WebConsole](web-console.md)
* [Docker](docker.md)
* [用户案例](https://github.com/alibaba/arthas/issues?q=label%3Auser-case)
* [常见问题](https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered)
* [Fork me at GitHub](https://github.com/alibaba/arthas)
* [参与贡献](https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md)
* [Release Notes](release-notes.md)
* [编译调试/参与贡献](https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md)
* [Release Notes](https://github.com/alibaba/arthas/releases)
* [QQ群/钉钉群](contact-us.md)

@ -53,7 +53,7 @@ curl -L https://alibaba.github.io/arthas/install.sh | sh
## 全量安装
最新版本,点击下载:[![Arthas](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=bin&v=LATEST)
最新版本,点击下载:[![](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=bin&v=LATEST)
解压后,在文件夹里有`arthas-boot.jar`,直接用`java -jar`的方式启动:
@ -73,13 +73,37 @@ java -jar arthas-boot.jar -h
[手动安装](manual-install.md)
## 通过rpm/deb来安装
在releases页面下载rpm/deb包 https://github.com/alibaba/arthas/releases
### 安装deb
```bash
sudo dpkg -i arthas*.deb
```
### 安装rpm
```bash
sudo rpm -i arthas*.rpm
```
### deb/rpm安装的用法
在安装后,可以直接执行:
```bash
as.sh
```
## 通过Cloud Toolkit插件使用Arthas
* [通过Cloud Toolkit插件使用Arthas一键诊断远程服务器](https://github.com/alibaba/arthas/issues/570)
## 离线帮助文档
最新版本,点击下载:[![Arthas](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=doc&v=LATEST)
最新版本离线文档下载:[![](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=doc&v=LATEST)
## 卸载

@ -0,0 +1,185 @@
logger
===
> 查看logger信息更新logger level
### 使用参考
#### 查看所有logger信息
以下面的`logback.xml`为例:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="APPLICATION" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="APPLICATION" />
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n
</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="ASYNC" />
</root>
</configuration>
```
使用`logger`命令打印的结果是:
```bash
[arthas@2062]$ logger
name ROOT
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level INFO
effectiveLevel INFO
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
appenders name CONSOLE
class ch.qos.logback.core.ConsoleAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
target System.out
name APPLICATION
class ch.qos.logback.core.rolling.RollingFileAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
file app.log
name ASYNC
class ch.qos.logback.classic.AsyncAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
appenderRef [APPLICATION]
```
从`appenders`的信息里,可以看到
* `CONSOLE` logger的target是`System.out`
* `APPLICATION` logger是`RollingFileAppender`它的file是`app.log`
* `ASYNC`它的`appenderRef`是`APPLICATION`,即异步输出到文件里
#### 查看指定名字的logger信息
```bash
[arthas@2062]$ logger -n org.springframework.web
name org.springframework.web
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level null
effectiveLevel INFO
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
```
#### 查看指定classloader的logger信息
```bash
[arthas@2062]$ logger -c 2a139a55
name ROOT
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level DEBUG
effectiveLevel DEBUG
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
appenders name CONSOLE
class ch.qos.logback.core.ConsoleAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
target System.out
name APPLICATION
class ch.qos.logback.core.rolling.RollingFileAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
file app.log
name ASYNC
class ch.qos.logback.classic.AsyncAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
appenderRef [APPLICATION]
```
#### 更新logger level
```bash
[arthas@2062]$ logger --name ROOT --level debug
update logger level success.
```
#### 查看没有appender的logger的信息
默认情况下,`logger`命令只打印有appender的logger的信息。如果想查看没有`appender`的logger的信息可以加上参数`--include-no-appender`。
注意,通常输出结果会很长。
```bash
[arthas@2062]$ logger --include-no-appender
name ROOT
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level DEBUG
effectiveLevel DEBUG
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
appenders name CONSOLE
class ch.qos.logback.core.ConsoleAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
target System.out
name APPLICATION
class ch.qos.logback.core.rolling.RollingFileAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
file app.log
name ASYNC
class ch.qos.logback.classic.AsyncAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
appenderRef [APPLICATION]
name com
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level null
effectiveLevel DEBUG
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
name com.alibaba
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level null
effectiveLevel DEBUG
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
...
```

@ -6,7 +6,7 @@
1. 下载最新版本
**最新版本,点击下载**[![Arthas](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=bin&v=LATEST)
**最新版本,点击下载**[![](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=bin&v=LATEST)
如果下载速度比较慢,可以尝试用[阿里云的镜像仓库](https://maven.aliyun.com/),比如要下载`3.x.x`版本(替换`3.x.x`为最新版本下载的url是
@ -58,7 +58,7 @@ curl -L https://alibaba.github.io/arthas/install.sh | sh
### Windows
最新版本,点击下载:[![Arthas](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=bin&v=LATEST)
最新版本,点击下载:[![](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=bin&v=LATEST)
下载解压后在bin目录有 `as.bat`。此脚本暂时只接受一个参数 pid即只能诊断本机上的 Java 进程。欢迎精通bat脚本的开发者改进

@ -0,0 +1,53 @@
vmoption
===
> 查看更新VM诊断相关的参数
### 使用参考
#### 查看所有的option
```bash
[arthas@56963]$ vmoption
KEY VALUE ORIGIN WRITEABLE
---------------------------------------------------------------------------------------------
HeapDumpBeforeFullGC false DEFAULT true
HeapDumpAfterFullGC false DEFAULT true
HeapDumpOnOutOfMemory false DEFAULT true
Error
HeapDumpPath DEFAULT true
CMSAbortablePrecleanW 100 DEFAULT true
aitMillis
CMSWaitDuration 2000 DEFAULT true
CMSTriggerInterval -1 DEFAULT true
PrintGC false DEFAULT true
PrintGCDetails true MANAGEMENT true
PrintGCDateStamps false DEFAULT true
PrintGCTimeStamps false DEFAULT true
PrintGCID false DEFAULT true
PrintClassHistogramBe false DEFAULT true
foreFullGC
PrintClassHistogramAf false DEFAULT true
terFullGC
PrintClassHistogram false DEFAULT true
MinHeapFreeRatio 0 DEFAULT true
MaxHeapFreeRatio 100 DEFAULT true
PrintConcurrentLocks false DEFAULT true
```
#### 查看指定的option
```bash
[arthas@56963]$ vmoption PrintGCDetails
KEY VALUE ORIGIN WRITEABLE
---------------------------------------------------------------------------------------------
PrintGCDetails false MANAGEMENT true
```
#### 更新指定的option
```bash
[arthas@56963]$ vmoption PrintGCDetails true
Successfully updated the vm option.
PrintGCDetails=true
```

@ -1,10 +1,100 @@
Web Console
===
### 通过浏览器连接arthas
Arthas目前支持Web Console用户在attach成功之后可以直接访问[http://127.0.0.1:8563/](http://127.0.0.1:8563/)。
可以填入IP远程连接其它机器上的arthas。
![web console](_static/web-console-local.png)
![](_static/web-console-local.png)
> 默认情况下arthas只listen 127.0.0.1,所以如果想从远程连接,则可以使用 `--target-ip`参数指定listen的IP更多参考`-h`的帮助说明。
> 注意会有安全风险考虑下面的tunnel server的方案。
后续更多Web Console功能支持请到issue下留言[https://github.com/alibaba/arthas/issues/15](https://github.com/alibaba/arthas/issues/15)
### 使用arthas tunnel server连接远程arthas
#### 下载部署arthas tunnel server
[https://github.com/alibaba/arthas/releases](https://github.com/alibaba/arthas/releases)
Arthas tunnel server是一个spring boot fat jar应用直接`java -jar`启动:
```bash
java -jar arthas-tunnel-server.jar
```
默认情况下arthas tunnel server的web端口是`8080`arthas agent连接的端口是`7777`。
启动之后,可以访问 [http://localhost:8080/](http://localhost:8080/) ,再通过`agentId`连接到已注册的arthas agent上。
通过Spring Boot的Endpoint可以查看到具体的连接信息 [http://localhost:8080/actuator/arthas](http://localhost:8080/actuator/arthas) ,登陆用户名是`arthas`密码在arthas tunnel server的日志里可以找到比如
```
32851 [main] INFO o.s.b.a.s.s.UserDetailsServiceAutoConfiguration
Using generated security password: f1dca050-3777-48f4-a577-6367e55a78a2
```
#### 启动arthas时连接到tunnel server
在启动arthas可以传递`--tunnel-server`参数,比如:
```bash
as.sh --tunnel-server 'ws://47.75.156.201:7777/ws'
```
* 如果有特殊需求,可以通过`--agent-id`参数里指定agentId。默认情况下会生成随机ID。
attach成功之后会打印出agentId比如
```bash
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. ''--. .--'| '--' | / O \ ' .-'
| .-. || '--'.' | | | .--. || .-. |`. `-.
| | | || |\ \ | | | | | || | | |.-' |
`--' `--'`--' '--' `--' `--' `--'`--' `--'`-----'
wiki https://alibaba.github.io/arthas
tutorials https://alibaba.github.io/arthas/arthas-tutorials
version 3.1.2
pid 86183
time 2019-08-30 15:40:53
id URJZ5L48RPBR2ALI5K4V
```
如果是启动时没有连接到 tunnel server也可以在后续自动重连成功之后通过 session命令来获取 agentId
```bash
[arthas@86183]$ session
Name Value
-----------------------------------------------------
JAVA_PID 86183
SESSION_ID f7273eb5-e7b0-4a00-bc5b-3fe55d741882
AGENT_ID URJZ5L48RPBR2ALI5K4V
TUNNEL_SERVER ws://47.75.156.201:7777/ws
```
以上面的为例,在浏览器里访问 [http://47.75.156.201:8080/](http://47.75.156.201:8080/) ,输入 `agentId`就可以连接到本机上的arthas了。
![](_static/arthas-tunnel-server.png)
#### Arthas tunnel server的工作原理
```
browser <-> arthas tunnel server <-> arthas tunnel client <-> arthas agent
```
后续更多Web Console功能支持请到issue下留言[https://github.com/alibaba/arthas/issues/15](https://github.com/alibaba/arthas/issues/15)
[https://github.com/alibaba/arthas/blob/master/tunnel-server/README.md](https://github.com/alibaba/arthas/blob/master/tunnel-server/README.md)

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@ -81,6 +81,10 @@ div.sphinxsidebar input {
font-size: 1em;
}
div.sphinxsidebar #searchbox form.search {
overflow: hidden;
}
div.sphinxsidebar #searchbox input[type="text"] {
float: left;
width: 80%;
@ -227,6 +231,16 @@ a.headerlink {
visibility: hidden;
}
a.brackets:before,
span.brackets > a:before{
content: "[";
}
a.brackets:after,
span.brackets > a:after {
content: "]";
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
@ -275,6 +289,12 @@ img.align-center, .figure.align-center, object.align-center {
margin-right: auto;
}
img.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
@ -283,6 +303,10 @@ img.align-center, .figure.align-center, object.align-center {
text-align: center;
}
.align-default {
text-align: center;
}
.align-right {
text-align: right;
}
@ -354,6 +378,11 @@ table.align-center {
margin-right: auto;
}
table.align-default {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number {
font-style: italic;
}
@ -387,6 +416,16 @@ table.citation td {
border-bottom: none;
}
th > p:first-child,
td > p:first-child {
margin-top: 0px;
}
th > p:last-child,
td > p:last-child {
margin-bottom: 0px;
}
/* -- figures --------------------------------------------------------------- */
div.figure {
@ -427,6 +466,13 @@ table.field-list td, table.field-list th {
hyphens: manual;
}
/* -- hlist styles ---------------------------------------------------------- */
table.hlist td {
vertical-align: top;
}
/* -- other body styles ----------------------------------------------------- */
ol.arabic {
@ -449,11 +495,57 @@ ol.upperroman {
list-style: upper-roman;
}
li > p:first-child {
margin-top: 0px;
}
li > p:last-child {
margin-bottom: 0px;
}
dl.footnote > dt,
dl.citation > dt {
float: left;
}
dl.footnote > dd,
dl.citation > dd {
margin-bottom: 0em;
}
dl.footnote > dd:after,
dl.citation > dd:after {
content: "";
clear: both;
}
dl.field-list {
display: flex;
flex-wrap: wrap;
}
dl.field-list > dt {
flex-basis: 20%;
font-weight: bold;
word-break: break-word;
}
dl.field-list > dt:after {
content: ":";
}
dl.field-list > dd {
flex-basis: 70%;
padding-left: 1em;
margin-left: 0em;
margin-bottom: 0em;
}
dl {
margin-bottom: 15px;
}
dd p {
dd > p:first-child {
margin-top: 0px;
}
@ -526,6 +618,12 @@ dl.glossary dt {
font-style: oblique;
}
.classifier:before {
font-style: normal;
margin: 0.5em;
content: ":";
}
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;

@ -1 +1 @@
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}

File diff suppressed because one or more lines are too long

@ -4,7 +4,7 @@
*
* Sphinx JavaScript utilities for all documentation.
*
* :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@ -87,14 +87,13 @@ jQuery.fn.highlightText = function(text, className) {
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var bbox = span.getBBox();
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rect.x.baseVal.value = bbox.x;
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
var parentOfText = node.parentNode.parentNode;
addItems.push({
"parent": node.parentNode,
"target": rect});
@ -150,7 +149,9 @@ var Documentation = {
this.fixFirefoxAnchorBug();
this.highlightSearchWords();
this.initIndexTable();
if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
this.initOnKeyListeners();
}
},
/**
@ -310,4 +311,4 @@ _ = Documentation.gettext;
$(document).ready(function() {
Documentation.init();
});
});

@ -1,9 +1,10 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '3.1.1',
VERSION: '3.1.2',
LANGUAGE: 'zh_CN',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,3 +1,3 @@
/* sphinx_rtd_theme version 0.4.1 | MIT license */
/* Built 20180727 10:07 */
require=function n(e,i,t){function o(s,a){if(!i[s]){if(!e[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(r)return r(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=i[s]={exports:{}};e[s][0].call(u.exports,function(n){var i=e[s][1][n];return o(i||n)},u,u.exports,n,e,i,t)}return i[s].exports}for(var r="function"==typeof require&&require,s=0;s<t.length;s++)o(t[s]);return o}({"sphinx-rtd-theme":[function(n,e,i){var jQuery="undefined"!=typeof window?window.jQuery:n("jquery");e.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var e=this;void 0===n&&(n=!0),e.isRunning||(e.isRunning=!0,jQuery(function(i){e.init(i),e.reset(),e.win.on("hashchange",e.reset),n&&e.win.on("scroll",function(){e.linkScroll||e.winScroll||(e.winScroll=!0,requestAnimationFrame(function(){e.onScroll()}))}),e.win.on("resize",function(){e.winResize||(e.winResize=!0,requestAnimationFrame(function(){e.onResize()}))}),e.onResize()}))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")}).on("click",".wy-menu-vertical .current ul li a",function(){var i=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(i),e.hashChange()}).on("click","[data-toggle='rst-current-version']",function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")}),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),n("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),n("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var i=n(this);expand=n('<span class="toctree-expand"></span>'),expand.on("click",function(n){return e.toggleCurrent(i),n.stopPropagation(),!1}),i.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}i.length>0&&($(".wy-menu-vertical .current").removeClass("current"),i.addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l1").parent().addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l2").addClass("current"),i.closest("li.toctree-l3").addClass("current"),i.closest("li.toctree-l4").addClass("current"))}catch(o){console.log("Error expanding nav for anchor",o)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,i=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],i=0;i<e.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[e[i]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[i]+"CancelAnimationFrame"]||window[e[i]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,i){var t=(new Date).getTime(),o=Math.max(0,16-(t-n)),r=window.setTimeout(function(){e(t+o)},o);return n=t+o,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()},{jquery:"jquery"}]},{},["sphinx-rtd-theme"]);
/* sphinx_rtd_theme version 0.4.3 | MIT license */
/* Built 20190212 16:02 */
require=function r(s,a,l){function c(e,n){if(!a[e]){if(!s[e]){var i="function"==typeof require&&require;if(!n&&i)return i(e,!0);if(u)return u(e,!0);var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=a[e]={exports:{}};s[e][0].call(o.exports,function(n){return c(s[e][1][n]||n)},o,o.exports,r,s,a,l)}return a[e].exports}for(var u="function"==typeof require&&require,n=0;n<l.length;n++)c(l[n]);return c}({"sphinx-rtd-theme":[function(n,e,i){var jQuery="undefined"!=typeof window?window.jQuery:n("jquery");e.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(e){var i=this;void 0===e&&(e=!0),i.isRunning||(i.isRunning=!0,jQuery(function(n){i.init(n),i.reset(),i.win.on("hashchange",i.reset),e&&i.win.on("scroll",function(){i.linkScroll||i.winScroll||(i.winScroll=!0,requestAnimationFrame(function(){i.onScroll()}))}),i.win.on("resize",function(){i.winResize||(i.winResize=!0,requestAnimationFrame(function(){i.onResize()}))}),i.onResize()}))},enableSticky:function(){this.enable(!0)},init:function(i){i(document);var t=this;this.navBar=i("div.wy-side-scroll:first"),this.win=i(window),i(document).on("click","[data-toggle='wy-nav-top']",function(){i("[data-toggle='wy-nav-shift']").toggleClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift")}).on("click",".wy-menu-vertical .current ul li a",function(){var n=i(this);i("[data-toggle='wy-nav-shift']").removeClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift"),t.toggleCurrent(n),t.hashChange()}).on("click","[data-toggle='rst-current-version']",function(){i("[data-toggle='rst-versions']").toggleClass("shift-up")}),i("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),i("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),i("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),i(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var e=i(this);expand=i('<span class="toctree-expand"></span>'),expand.on("click",function(n){return t.toggleCurrent(e),n.stopPropagation(),!1}),e.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}0<i.length&&($(".wy-menu-vertical .current").removeClass("current"),i.addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l1").parent().addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l2").addClass("current"),i.closest("li.toctree-l3").addClass("current"),i.closest("li.toctree-l4").addClass("current"),i[0].scrollIntoView())}catch(o){console.log("Error expanding nav for anchor",o)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,i=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var r=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,e){var i=(new Date).getTime(),t=Math.max(0,16-(i-r)),o=window.setTimeout(function(){n(i+t)},t);return r=i+t,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()},{jquery:"jquery"}]},{},["sphinx-rtd-theme"]);

@ -0,0 +1,297 @@
/*
* language_data.js
* ~~~~~~~~~~~~~~~~
*
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
/* Non-minified version JS is _stemmer.js if file is provided */
/**
* Porter Stemmer
*/
var Stemmer = function() {
var step2list = {
ational: 'ate',
tional: 'tion',
enci: 'ence',
anci: 'ance',
izer: 'ize',
bli: 'ble',
alli: 'al',
entli: 'ent',
eli: 'e',
ousli: 'ous',
ization: 'ize',
ation: 'ate',
ator: 'ate',
alism: 'al',
iveness: 'ive',
fulness: 'ful',
ousness: 'ous',
aliti: 'al',
iviti: 'ive',
biliti: 'ble',
logi: 'log'
};
var step3list = {
icate: 'ic',
ative: '',
alize: 'al',
iciti: 'ic',
ical: 'ic',
ful: '',
ness: ''
};
var c = "[^aeiou]"; // consonant
var v = "[aeiouy]"; // vowel
var C = c + "[^aeiouy]*"; // consonant sequence
var V = v + "[aeiou]*"; // vowel sequence
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
var s_v = "^(" + C + ")?" + v; // vowel in stem
this.stemWord = function (w) {
var stem;
var suffix;
var firstch;
var origword = w;
if (w.length < 3)
return w;
var re;
var re2;
var re3;
var re4;
firstch = w.substr(0,1);
if (firstch == "y")
w = firstch.toUpperCase() + w.substr(1);
// Step 1a
re = /^(.+?)(ss|i)es$/;
re2 = /^(.+?)([^s])s$/;
if (re.test(w))
w = w.replace(re,"$1$2");
else if (re2.test(w))
w = w.replace(re2,"$1$2");
// Step 1b
re = /^(.+?)eed$/;
re2 = /^(.+?)(ed|ing)$/;
if (re.test(w)) {
var fp = re.exec(w);
re = new RegExp(mgr0);
if (re.test(fp[1])) {
re = /.$/;
w = w.replace(re,"");
}
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1];
re2 = new RegExp(s_v);
if (re2.test(stem)) {
w = stem;
re2 = /(at|bl|iz)$/;
re3 = new RegExp("([^aeiouylsz])\\1$");
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re2.test(w))
w = w + "e";
else if (re3.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
else if (re4.test(w))
w = w + "e";
}
}
// Step 1c
re = /^(.+?)y$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(s_v);
if (re.test(stem))
w = stem + "i";
}
// Step 2
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step2list[suffix];
}
// Step 3
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step3list[suffix];
}
// Step 4
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
re2 = /^(.+?)(s|t)(ion)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
if (re.test(stem))
w = stem;
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1] + fp[2];
re2 = new RegExp(mgr1);
if (re2.test(stem))
w = stem;
}
// Step 5
re = /^(.+?)e$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
re2 = new RegExp(meq1);
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
w = stem;
}
re = /ll$/;
re2 = new RegExp(mgr1);
if (re.test(w) && re2.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
// and turn initial Y back to y
if (firstch == "y")
w = firstch.toLowerCase() + w.substr(1);
return w;
}
}
var splitChars = (function() {
var result = {};
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
var i, j, start, end;
for (i = 0; i < singles.length; i++) {
result[singles[i]] = true;
}
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
for (i = 0; i < ranges.length; i++) {
start = ranges[i][0];
end = ranges[i][1];
for (j = start; j <= end; j++) {
result[j] = true;
}
}
return result;
})();
function splitQuery(query) {
var result = [];
var start = -1;
for (var i = 0; i < query.length; i++) {
if (splitChars[query.charCodeAt(i)]) {
if (start !== -1) {
result.push(query.slice(start, i));
start = -1;
}
} else if (start === -1) {
start = i;
}
}
if (start !== -1) {
result.push(query.slice(start));
}
return result;
}

@ -1,331 +1,54 @@
/*
* searchtools.js_t
* searchtools.js
* ~~~~~~~~~~~~~~~~
*
* Sphinx JavaScript utilities for the full-text search.
*
* :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/* Non-minified version JS is _stemmer.js if file is provided */
/**
* Porter Stemmer
*/
var Stemmer = function() {
var step2list = {
ational: 'ate',
tional: 'tion',
enci: 'ence',
anci: 'ance',
izer: 'ize',
bli: 'ble',
alli: 'al',
entli: 'ent',
eli: 'e',
ousli: 'ous',
ization: 'ize',
ation: 'ate',
ator: 'ate',
alism: 'al',
iveness: 'ive',
fulness: 'ful',
ousness: 'ous',
aliti: 'al',
iviti: 'ive',
biliti: 'ble',
logi: 'log'
};
var step3list = {
icate: 'ic',
ative: '',
alize: 'al',
iciti: 'ic',
ical: 'ic',
ful: '',
ness: ''
if (!Scorer) {
/**
* Simple result scoring code.
*/
var Scorer = {
// Implement the following function to further tweak the score for each result
// The function takes a result array [filename, title, anchor, descr, score]
// and returns the new score.
/*
score: function(result) {
return result[4];
},
*/
// query matches the full name of an object
objNameMatch: 11,
// or matches in the last dotted part of the object name
objPartialMatch: 6,
// Additive scores depending on the priority of the object
objPrio: {0: 15, // used to be importantResults
1: 5, // used to be objectResults
2: -5}, // used to be unimportantResults
// Used when the priority is not in the mapping.
objPrioDefault: 0,
// query found in title
title: 15,
partialTitle: 7,
// query found in terms
term: 5,
partialTerm: 2
};
var c = "[^aeiou]"; // consonant
var v = "[aeiouy]"; // vowel
var C = c + "[^aeiouy]*"; // consonant sequence
var V = v + "[aeiou]*"; // vowel sequence
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
var s_v = "^(" + C + ")?" + v; // vowel in stem
this.stemWord = function (w) {
var stem;
var suffix;
var firstch;
var origword = w;
if (w.length < 3)
return w;
var re;
var re2;
var re3;
var re4;
firstch = w.substr(0,1);
if (firstch == "y")
w = firstch.toUpperCase() + w.substr(1);
// Step 1a
re = /^(.+?)(ss|i)es$/;
re2 = /^(.+?)([^s])s$/;
if (re.test(w))
w = w.replace(re,"$1$2");
else if (re2.test(w))
w = w.replace(re2,"$1$2");
// Step 1b
re = /^(.+?)eed$/;
re2 = /^(.+?)(ed|ing)$/;
if (re.test(w)) {
var fp = re.exec(w);
re = new RegExp(mgr0);
if (re.test(fp[1])) {
re = /.$/;
w = w.replace(re,"");
}
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1];
re2 = new RegExp(s_v);
if (re2.test(stem)) {
w = stem;
re2 = /(at|bl|iz)$/;
re3 = new RegExp("([^aeiouylsz])\\1$");
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re2.test(w))
w = w + "e";
else if (re3.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
else if (re4.test(w))
w = w + "e";
}
}
// Step 1c
re = /^(.+?)y$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(s_v);
if (re.test(stem))
w = stem + "i";
}
// Step 2
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step2list[suffix];
}
// Step 3
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step3list[suffix];
}
// Step 4
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
re2 = /^(.+?)(s|t)(ion)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
if (re.test(stem))
w = stem;
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1] + fp[2];
re2 = new RegExp(mgr1);
if (re2.test(stem))
w = stem;
}
// Step 5
re = /^(.+?)e$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
re2 = new RegExp(meq1);
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
w = stem;
}
re = /ll$/;
re2 = new RegExp(mgr1);
if (re.test(w) && re2.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
// and turn initial Y back to y
if (firstch == "y")
w = firstch.toLowerCase() + w.substr(1);
return w;
}
}
/**
* Simple result scoring code.
*/
var Scorer = {
// Implement the following function to further tweak the score for each result
// The function takes a result array [filename, title, anchor, descr, score]
// and returns the new score.
/*
score: function(result) {
return result[4];
},
*/
// query matches the full name of an object
objNameMatch: 11,
// or matches in the last dotted part of the object name
objPartialMatch: 6,
// Additive scores depending on the priority of the object
objPrio: {0: 15, // used to be importantResults
1: 5, // used to be objectResults
2: -5}, // used to be unimportantResults
// Used when the priority is not in the mapping.
objPrioDefault: 0,
// query found in title
title: 15,
// query found in terms
term: 5
};
var splitChars = (function() {
var result = {};
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
var i, j, start, end;
for (i = 0; i < singles.length; i++) {
result[singles[i]] = true;
}
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
for (i = 0; i < ranges.length; i++) {
start = ranges[i][0];
end = ranges[i][1];
for (j = start; j <= end; j++) {
result[j] = true;
}
}
return result;
})();
function splitQuery(query) {
var result = [];
var start = -1;
for (var i = 0; i < query.length; i++) {
if (splitChars[query.charCodeAt(i)]) {
if (start !== -1) {
result.push(query.slice(start, i));
start = -1;
}
} else if (start === -1) {
start = i;
}
}
if (start !== -1) {
result.push(query.slice(start));
}
return result;
if (!splitQuery) {
function splitQuery(query) {
return query.split(/\s+/);
}
}
/**
* Search Module
*/
@ -335,6 +58,14 @@ var Search = {
_queued_query : null,
_pulse_status : -1,
htmlToText : function(htmlString) {
var htmlElement = document.createElement('span');
htmlElement.innerHTML = htmlString;
$(htmlElement).find('.headerlink').remove();
docContent = $(htmlElement).find('[role=main]')[0];
return docContent.textContent || docContent.innerText;
},
init : function() {
var params = $.getQueryParameters();
if (params.q) {
@ -399,7 +130,7 @@ var Search = {
this.out = $('#search-results');
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
this.dots = $('<span></span>').appendTo(this.title);
this.status = $('<p style="display: none"></p>').appendTo(this.out);
this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out);
this.output = $('<ul class="search"/>').appendTo(this.out);
$('#search-progress').text(_('Preparing search...'));
@ -417,7 +148,6 @@ var Search = {
*/
query : function(query) {
var i;
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
// stem the searchterms and add them to the correct list
var stemmer = new Stemmer();
@ -539,11 +269,7 @@ var Search = {
displayNextItem();
});
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX;
if (suffix === undefined) {
suffix = '.txt';
}
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix),
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX,
dataType: "text",
complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText;
@ -593,12 +319,13 @@ var Search = {
for (var prefix in objects) {
for (var name in objects[prefix]) {
var fullname = (prefix ? prefix + '.' : '') + name;
if (fullname.toLowerCase().indexOf(object) > -1) {
var fullnameLower = fullname.toLowerCase()
if (fullnameLower.indexOf(object) > -1) {
var score = 0;
var parts = fullname.split('.');
var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part)
if (fullname == object || parts[parts.length - 1] == object) {
if (fullnameLower == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch;
// matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) {
@ -665,6 +392,19 @@ var Search = {
{files: terms[word], score: Scorer.term},
{files: titleterms[word], score: Scorer.title}
];
// add support for partial matches
if (word.length > 2) {
for (var w in terms) {
if (w.match(word) && !terms[word]) {
_o.push({files: terms[w], score: Scorer.partialTerm})
}
}
for (var w in titleterms) {
if (w.match(word) && !titleterms[word]) {
_o.push({files: titleterms[w], score: Scorer.partialTitle})
}
}
}
// no match but word was a required one
if ($u.every(_o, function(o){return o.files === undefined;})) {
@ -704,8 +444,12 @@ var Search = {
var valid = true;
// check if all requirements are matched
if (fileMap[file].length != searchterms.length)
continue;
var filteredTermCount = // as search terms with length < 3 are discarded: ignore
searchterms.filter(function(term){return term.length > 2}).length
if (
fileMap[file].length != searchterms.length &&
fileMap[file].length != filteredTermCount
) continue;
// ensure that none of the excluded terms is in the search result
for (i = 0; i < excluded.length; i++) {
@ -736,7 +480,8 @@ var Search = {
* words. the first one is used to find the occurrence, the
* latter for highlighting it.
*/
makeSearchSummary : function(text, keywords, hlwords) {
makeSearchSummary : function(htmlText, keywords, hlwords) {
var text = Search.htmlToText(htmlText);
var textLower = text.toLowerCase();
var start = 0;
$.each(keywords, function() {
@ -758,4 +503,4 @@ var Search = {
$(document).ready(function() {
Search.init();
});
});

@ -1 +1 @@
Documentation.addTranslations({"locale": "zh_Hans_CN", "messages": {"%(filename)s &#8212; %(docstitle)s": "%(filename)s &#8212; %(docstitle)s", "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&#169; <a href=\"%(path)s\"> \u7248\u6743\u6240\u6709</a> %(copyright)s.", "&#169; Copyright %(copyright)s.": "&#169; \u7248\u6743\u6240\u6709 %(copyright)s.", ", in ": "\uff0c\u5728", "About these documents": "\u5173\u4e8e\u8fd9\u4e9b\u6587\u6863", "Automatically generated list of changes in version %(version)s": "\u81ea\u52a8\u751f\u6210\u7684 %(version)s \u7248\u672c\u4e2d\u7684\u66f4\u6539\u5217\u8868", "C API changes": "C API \u66f4\u6539", "Changes in Version %(version)s &#8212; %(docstitle)s": "\u66f4\u6539\u53d1\u751f\u5728\u7248\u672c %(version)s&#8212; %(docstitle)s", "Collapse sidebar": "\u6298\u53e0\u8fb9\u680f", "Complete Table of Contents": "\u5b8c\u6574\u7684\u5185\u5bb9\u8868", "Contents": "\u76ee\u5f55", "Copyright": "\u7248\u6743\u6240\u6709", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u7531 <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u521b\u5efa\u3002", "Expand sidebar": "\u5c55\u5f00\u8fb9\u680f", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u5728\u8fd9\u513f\uff0c\u4f60\u53ef\u4ee5\u5bf9\u8fd9\u4e9b\u6587\u6863\u8fdb\u884c\u641c\u7d22\u3002\u5411\u641c\u7d22\u6846\u4e2d\u8f93\u5165\u4f60\u6240\u8981\u641c\u7d22\u7684\u5173\u952e\u5b57\u5e76\u70b9\u51fb\u201c\u641c\u7d22\u201d\u3002\u6ce8\u610f\uff1a\u641c\u7d22\u5f15\u64ce\u4f1a\u81ea\u52a8\u641c\u7d22\u6240\u6709\u7684\u5173\u952e\u5b57\u3002\u5c06\u4e0d\u4f1a\u641c\u7d22\u5230\u90e8\u5206\u5173\u952e\u5b57\u7684\u9875\u9762.", "Full index on one page": "\u4e00\u9875\u7684\u5168\u90e8\u7d22\u5f15", "General Index": "\u603b\u76ee\u5f55", "Global Module Index": "\u5168\u5c40\u6a21\u5757\u7d22\u5f15", "Go": "\u8f6c\u5411", "Hide Search Matches": "\u9690\u85cf\u641c\u7d22\u7ed3\u679c", "Index": "\u7d22\u5f15", "Index &ndash; %(key)s": "\u7d22\u5f15 &ndash; %(key)s", "Index pages by letter": "\u6309\u7167\u5b57\u6bcd\u7684\u7d22\u5f15\u9875", "Indices and tables:": "\u7d22\u5f15\u548c\u8868\u683c\uff1a", "Last updated on %(last_updated)s.": "\u6700\u540e\u66f4\u65b0\u4e8e %(last_updated)s.", "Library changes": "\u5e93\u66f4\u6539", "Navigation": "\u5bfc\u822a", "Next topic": "\u4e0b\u4e00\u4e2a\u4e3b\u9898", "Other changes": "\u5176\u4ed6\u66f4\u6539", "Overview": "\u6982\u8ff0", "Permalink to this definition": "\u6c38\u4e45\u94fe\u63a5\u81f3\u76ee\u6807", "Permalink to this headline": "\u6c38\u4e45\u94fe\u63a5\u81f3\u6807\u9898", "Please activate JavaScript to enable the search\n functionality.": "\u8bf7\u6fc0\u6d3b JavaScript \u4ee5\u5f00\u542f\u641c\u7d22\u529f\u80fd", "Preparing search...": "\u51c6\u5907\u641c\u7d22\u2026\u2026", "Previous topic": "\u4e0a\u4e00\u4e2a\u4e3b\u9898", "Quick search": "\u5feb\u901f\u641c\u7d22", "Search": "\u641c\u7d22", "Search Page": "\u641c\u7d22\u9875\u9762", "Search Results": "\u641c\u7d22\u7ed3\u679c", "Search finished, found %s page(s) matching the search query.": "\u641c\u7d22\u5b8c\u6210\uff0c\u6709 %s \u4e2a\u9875\u9762\u5339\u914d\u3002", "Search within %(docstitle)s": "\u5728 %(docstitle)s \u4e2d\u641c\u7d22", "Searching": "\u641c\u7d22\u4e2d", "Show Source": "\u663e\u793a\u6e90\u4ee3\u7801", "Table Of Contents": "\u5167\u5bb9\u76ee\u5f55", "This Page": "\u672c\u9875", "Welcome! This is": "\u6b22\u8fce\uff01\u8fd9\u662f", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u6ca1\u6709\u4efb\u4f55\u6587\u6863\u5339\u914d\u60a8\u7684\u641c\u7d22\u3002\u8bf7\u786e\u4fdd\u4f60\u8f93\u5165\u7684\u8bcd\u62fc\u5199\u6b63\u786e\u5e76\u9009\u62e9\u4e86\u5408\u9002\u7684\u5206\u7c7b\u3002", "all functions, classes, terms": "\u6240\u7684\u51fd\u6570\uff0c\u7c7b\uff0c\u672f\u8bed", "can be huge": "\u53ef\u80fd\u4f1a\u5f88\u591a", "last updated": "\u6700\u540e\u66f4\u65b0\u4e8e", "lists all sections and subsections": "\u5217\u51fa\u6240\u6709\u7684\u7ae0\u8282\u548c\u90e8\u5206", "next chapter": "\u4e0b\u4e00\u7ae0", "previous chapter": "\u4e0a\u4e00\u7ae0", "quick access to all modules": "\u5feb\u901f\u67e5\u770b\u6240\u6709\u7684\u6a21\u5757", "search": "\u641c\u7d22", "search this documentation": "\u641c\u7d22\u6587\u6863", "the documentation for": "\u8fd9\u4efd\u6587\u6863\u662f"}, "plural_expr": "0"});
Documentation.addTranslations({"locale": "zh_Hans_CN", "messages": {"%(filename)s &#8212; %(docstitle)s": "%(filename)s &#8212; %(docstitle)s", "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&#169; <a href=\"%(path)s\"> \u7248\u6743\u6240\u6709</a> %(copyright)s.", "&#169; Copyright %(copyright)s.": "&#169; \u7248\u6743\u6240\u6709 %(copyright)s.", ", in ": "\uff0c\u5728", "About these documents": "\u5173\u4e8e\u8fd9\u4e9b\u6587\u6863", "Automatically generated list of changes in version %(version)s": "\u81ea\u52a8\u751f\u6210\u7684 %(version)s \u7248\u672c\u4e2d\u7684\u66f4\u6539\u5217\u8868", "C API changes": "C API \u66f4\u6539", "Changes in Version %(version)s &#8212; %(docstitle)s": "\u66f4\u6539\u53d1\u751f\u5728\u7248\u672c %(version)s&#8212; %(docstitle)s", "Collapse sidebar": "\u6298\u53e0\u8fb9\u680f", "Complete Table of Contents": "\u5b8c\u6574\u7684\u5185\u5bb9\u8868", "Contents": "\u76ee\u5f55", "Copyright": "\u7248\u6743\u6240\u6709", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u7531 <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u521b\u5efa\u3002", "Expand sidebar": "\u5c55\u5f00\u8fb9\u680f", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u5728\u8fd9\u513f\uff0c\u4f60\u53ef\u4ee5\u5bf9\u8fd9\u4e9b\u6587\u6863\u8fdb\u884c\u641c\u7d22\u3002\u5411\u641c\u7d22\u6846\u4e2d\u8f93\u5165\u4f60\u6240\u8981\u641c\u7d22\u7684\u5173\u952e\u5b57\u5e76\u70b9\u51fb\u201c\u641c\u7d22\u201d\u3002\u6ce8\u610f\uff1a\u641c\u7d22\u5f15\u64ce\u4f1a\u81ea\u52a8\u641c\u7d22\u6240\u6709\u7684\u5173\u952e\u5b57\u3002\u5c06\u4e0d\u4f1a\u641c\u7d22\u5230\u90e8\u5206\u5173\u952e\u5b57\u7684\u9875\u9762.", "Full index on one page": "\u4e00\u9875\u7684\u5168\u90e8\u7d22\u5f15", "General Index": "\u603b\u76ee\u5f55", "Global Module Index": "\u5168\u5c40\u6a21\u5757\u7d22\u5f15", "Go": "\u8f6c\u5411", "Hide Search Matches": "\u9690\u85cf\u641c\u7d22\u7ed3\u679c", "Index": "\u7d22\u5f15", "Index &ndash; %(key)s": "\u7d22\u5f15 &ndash; %(key)s", "Index pages by letter": "\u6309\u7167\u5b57\u6bcd\u7684\u7d22\u5f15\u9875", "Indices and tables:": "\u7d22\u5f15\u548c\u8868\u683c\uff1a", "Last updated on %(last_updated)s.": "\u6700\u540e\u66f4\u65b0\u4e8e %(last_updated)s.", "Library changes": "\u5e93\u66f4\u6539", "Navigation": "\u5bfc\u822a", "Next topic": "\u4e0b\u4e00\u4e2a\u4e3b\u9898", "Other changes": "\u5176\u4ed6\u66f4\u6539", "Overview": "\u6982\u8ff0", "Permalink to this definition": "\u6c38\u4e45\u94fe\u63a5\u81f3\u76ee\u6807", "Permalink to this headline": "\u6c38\u4e45\u94fe\u63a5\u81f3\u6807\u9898", "Please activate JavaScript to enable the search\n functionality.": "\u8bf7\u6fc0\u6d3b JavaScript \u4ee5\u5f00\u542f\u641c\u7d22\u529f\u80fd", "Preparing search...": "\u51c6\u5907\u641c\u7d22\u2026\u2026", "Previous topic": "\u4e0a\u4e00\u4e2a\u4e3b\u9898", "Quick search": "\u5feb\u901f\u641c\u7d22", "Search": "\u641c\u7d22", "Search Page": "\u641c\u7d22\u9875\u9762", "Search Results": "\u641c\u7d22\u7ed3\u679c", "Search finished, found %s page(s) matching the search query.": "\u641c\u7d22\u5b8c\u6210\uff0c\u6709 %s \u4e2a\u9875\u9762\u5339\u914d\u3002", "Search within %(docstitle)s": "\u5728 %(docstitle)s \u4e2d\u641c\u7d22", "Searching": "\u641c\u7d22\u4e2d", "Show Source": "\u663e\u793a\u6e90\u4ee3\u7801", "Table of Contents": "\u76ee\u5f55", "This Page": "\u672c\u9875", "Welcome! This is": "\u6b22\u8fce\uff01\u8fd9\u662f", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u6ca1\u6709\u4efb\u4f55\u6587\u6863\u5339\u914d\u60a8\u7684\u641c\u7d22\u3002\u8bf7\u786e\u4fdd\u4f60\u8f93\u5165\u7684\u8bcd\u62fc\u5199\u6b63\u786e\u5e76\u9009\u62e9\u4e86\u5408\u9002\u7684\u5206\u7c7b\u3002", "all functions, classes, terms": "\u6240\u7684\u51fd\u6570\uff0c\u7c7b\uff0c\u672f\u8bed", "can be huge": "\u53ef\u80fd\u4f1a\u5f88\u591a", "last updated": "\u6700\u540e\u66f4\u65b0\u4e8e", "lists all sections and subsections": "\u5217\u51fa\u6240\u6709\u7684\u7ae0\u8282\u548c\u90e8\u5206", "next chapter": "\u4e0b\u4e00\u7ae0", "previous chapter": "\u4e0a\u4e00\u7ae0", "quick access to all modules": "\u5feb\u901f\u67e5\u770b\u6240\u6709\u7684\u6a21\u5757", "search": "\u641c\u7d22", "search this documentation": "\u641c\u7d22\u6587\u6863", "the documentation for": "\u8fd9\u4efd\u6587\u6863\u662f"}, "plural_expr": "0"});

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>进阶使用 &mdash; Arthas 3.1.1 文档</title>
<title>进阶使用 &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -37,21 +45,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,20 +96,21 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">进阶使用</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#">基础命令</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">基础命令</a></li>
<li class="toctree-l2"><a class="reference internal" href="#jvm">jvm相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="#class-classloader">class/classloader相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="#monitor-watch-trace">monitor/watch/trace相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="#options">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="#">管道</a></li>
<li class="toctree-l2"><a class="reference internal" href="#">后台异步任务</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id3">管道</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id4">后台异步任务</a></li>
<li class="toctree-l2"><a class="reference internal" href="#web-console">Web Console</a><ul>
<li class="toctree-l3"><a class="reference internal" href="web-console.html">Web Console</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#">其他特性</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id5">其他特性</a><ul>
<li class="toctree-l3"><a class="reference internal" href="async.html">异步命令支持</a></li>
<li class="toctree-l3"><a class="reference internal" href="save-log.html">执行结果存日志</a></li>
<li class="toctree-l3"><a class="reference internal" href="batch-support.html">批处理的支持</a></li>
@ -116,12 +120,13 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -189,89 +194,93 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="">
<span id="id1"></span><h1>进阶使用<a class="headerlink" href="#" title="永久链接至标题"></a></h1>
<div class="section" id="">
<span id="id2"></span><h2>基础命令<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id1">
<h1>进阶使用<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="id2">
<h2>基础命令<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<ul class="simple">
<li>help——查看命令帮助信息</li>
<li><a class="reference internal" href="cat.html"><span class="doc">cat</span></a>——打印文件内容和linux里的cat命令类似</li>
<li><a class="reference internal" href="pwd.html"><span class="doc">pwd</span></a>——返回当前的工作目录和linux命令类似</li>
<li>cls——清空当前屏幕区域</li>
<li>session——查看当前会话的信息</li>
<li><a class="reference internal" href="reset.html"><span class="doc">reset</span></a>——重置增强类,将被 Arthas 增强过的类全部还原Arthas 服务端关闭时会重置所有增强过的类</li>
<li>version——输出当前目标 Java 进程所加载的 Arthas 版本号</li>
<li>history——打印命令历史</li>
<li>quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响</li>
<li>shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出</li>
<li><a class="reference internal" href="keymap.html"><span class="doc">keymap</span></a>——Arthas快捷键列表及自定义快捷键</li>
<li><p>help——查看命令帮助信息</p></li>
<li><p><a class="reference internal" href="cat.html"><span class="doc">cat</span></a>——打印文件内容和linux里的cat命令类似</p></li>
<li><p><a class="reference internal" href="pwd.html"><span class="doc">pwd</span></a>——返回当前的工作目录和linux命令类似</p></li>
<li><p>cls——清空当前屏幕区域</p></li>
<li><p>session——查看当前会话的信息</p></li>
<li><p><a class="reference internal" href="reset.html"><span class="doc">reset</span></a>——重置增强类,将被 Arthas 增强过的类全部还原Arthas 服务端关闭时会重置所有增强过的类</p></li>
<li><p>version——输出当前目标 Java 进程所加载的 Arthas 版本号</p></li>
<li><p>history——打印命令历史</p></li>
<li><p>quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响</p></li>
<li><p>shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出</p></li>
<li><p><a class="reference internal" href="keymap.html"><span class="doc">keymap</span></a>——Arthas快捷键列表及自定义快捷键</p></li>
</ul>
</div>
<div class="section" id="jvm">
<span id="jvm"></span><h2>jvm相关<a class="headerlink" href="#jvm" title="永久链接至标题"></a></h2>
<h2>jvm相关<a class="headerlink" href="#jvm" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><a class="reference internal" href="dashboard.html"><span class="doc">dashboard</span></a>——当前系统的实时数据面板</li>
<li><a class="reference internal" href="thread.html"><span class="doc">thread</span></a>——查看当前 JVM 的线程堆栈信息</li>
<li><a class="reference internal" href="jvm.html"><span class="doc">jvm</span></a>——查看当前 JVM 的信息</li>
<li><a class="reference internal" href="sysprop.html"><span class="doc">sysprop</span></a>——查看和修改JVM的系统属性</li>
<li><a class="reference internal" href="sysenv.html"><span class="doc">sysenv</span></a>——查看JVM的环境变量</li>
<li><a class="reference internal" href="getstatic.html"><span class="doc">getstatic</span></a>——查看类的静态属性</li>
<li><strong>New!</strong> <a class="reference internal" href="ognl.html"><span class="doc">ognl</span></a>——执行ognl表达式</li>
<li><strong>New!</strong> <a class="reference internal" href="mbean.html"><span class="doc">mbean</span></a>——查看 Mbean 的信息</li>
<li><p><a class="reference internal" href="dashboard.html"><span class="doc">dashboard</span></a>——当前系统的实时数据面板</p></li>
<li><p><a class="reference internal" href="thread.html"><span class="doc">thread</span></a>——查看当前 JVM 的线程堆栈信息</p></li>
<li><p><a class="reference internal" href="jvm.html"><span class="doc">jvm</span></a>——查看当前 JVM 的信息</p></li>
<li><p><a class="reference internal" href="sysprop.html"><span class="doc">sysprop</span></a>——查看和修改JVM的系统属性</p></li>
<li><p><a class="reference internal" href="sysenv.html"><span class="doc">sysenv</span></a>——查看JVM的环境变量</p></li>
<li><p><a class="reference internal" href="vmoption.html"><span class="doc">vmoption</span></a>——查看和修改JVM里诊断相关的option</p></li>
<li><p><a class="reference internal" href="logger.html"><span class="doc">logger</span></a>——查看和修改logger</p></li>
<li><p><a class="reference internal" href="getstatic.html"><span class="doc">getstatic</span></a>——查看类的静态属性</p></li>
<li><p><a class="reference internal" href="ognl.html"><span class="doc">ognl</span></a>——执行ognl表达式</p></li>
<li><p><a class="reference internal" href="mbean.html"><span class="doc">mbean</span></a>——查看 Mbean 的信息</p></li>
<li><p><a class="reference internal" href="heapdump.html"><span class="doc">heapdump</span></a>——dump java heap, 类似jmap命令的heap dump功能</p></li>
</ul>
</div>
<div class="section" id="class-classloader">
<span id="class-classloader"></span><h2>class/classloader相关<a class="headerlink" href="#class-classloader" title="永久链接至标题"></a></h2>
<h2>class/classloader相关<a class="headerlink" href="#class-classloader" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><a class="reference internal" href="sc.html"><span class="doc">sc</span></a>——查看JVM已加载的类信息</li>
<li><a class="reference internal" href="sm.html"><span class="doc">sm</span></a>——查看已加载类的方法信息</li>
<li><a class="reference internal" href="jad.html"><span class="doc">jad</span></a>——反编译指定已加载类的源码</li>
<li><a class="reference internal" href="mc.html"><span class="doc">mc</span></a>——内存编绎器,内存编绎<tt class="docutils literal">.java</tt>文件为<tt class="docutils literal">.class</tt>文件</li>
<li><a class="reference internal" href="redefine.html"><span class="doc">redefine</span></a>——加载外部的<tt class="docutils literal">.class</tt>文件redefine到JVM里</li>
<li><a class="reference internal" href="dump.html"><span class="doc">dump</span></a>——dump 已加载类的 byte code 到特定目录</li>
<li><a class="reference internal" href="classloader.html"><span class="doc">classloader</span></a>——查看classloader的继承树urls类加载信息使用classloader去getResource</li>
<li><p><a class="reference internal" href="sc.html"><span class="doc">sc</span></a>——查看JVM已加载的类信息</p></li>
<li><p><a class="reference internal" href="sm.html"><span class="doc">sm</span></a>——查看已加载类的方法信息</p></li>
<li><p><a class="reference internal" href="jad.html"><span class="doc">jad</span></a>——反编译指定已加载类的源码</p></li>
<li><p><a class="reference internal" href="mc.html"><span class="doc">mc</span></a>——内存编绎器,内存编绎<code class="docutils literal notranslate"><span class="pre">.java</span></code>文件为<code class="docutils literal notranslate"><span class="pre">.class</span></code>文件</p></li>
<li><p><a class="reference internal" href="redefine.html"><span class="doc">redefine</span></a>——加载外部的<code class="docutils literal notranslate"><span class="pre">.class</span></code>文件redefine到JVM里</p></li>
<li><p><a class="reference internal" href="dump.html"><span class="doc">dump</span></a>——dump 已加载类的 byte code 到特定目录</p></li>
<li><p><a class="reference internal" href="classloader.html"><span class="doc">classloader</span></a>——查看classloader的继承树urls类加载信息使用classloader去getResource</p></li>
</ul>
</div>
<div class="section" id="monitor-watch-trace">
<span id="monitor-watch-trace"></span><h2>monitor/watch/trace相关<a class="headerlink" href="#monitor-watch-trace" title="永久链接至标题"></a></h2>
<h2>monitor/watch/trace相关<a class="headerlink" href="#monitor-watch-trace" title="永久链接至标题"></a></h2>
<blockquote>
<div>请注意,这些命令,都通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件,诊断结束要执行 <tt class="docutils literal">shutdown</tt> 或将增强过的类执行 <tt class="docutils literal">reset</tt> 命令。</div></blockquote>
<div><p>请注意,这些命令,都通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件,诊断结束要执行 <code class="docutils literal notranslate"><span class="pre">shutdown</span></code> 或将增强过的类执行 <code class="docutils literal notranslate"><span class="pre">reset</span></code> 命令。</p>
</div></blockquote>
<ul class="simple">
<li><a class="reference internal" href="monitor.html"><span class="doc">monitor</span></a>——方法执行监控</li>
<li><a class="reference internal" href="watch.html"><span class="doc">watch</span></a>——方法执行数据观测</li>
<li><a class="reference internal" href="trace.html"><span class="doc">trace</span></a>——方法内部调用路径,并输出方法路径上的每个节点上耗时</li>
<li><a class="reference internal" href="stack.html"><span class="doc">stack</span></a>——输出当前方法被调用的调用路径</li>
<li><a class="reference internal" href="tt.html"><span class="doc">tt</span></a>——方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测</li>
<li><p><a class="reference internal" href="monitor.html"><span class="doc">monitor</span></a>——方法执行监控</p></li>
<li><p><a class="reference internal" href="watch.html"><span class="doc">watch</span></a>——方法执行数据观测</p></li>
<li><p><a class="reference internal" href="trace.html"><span class="doc">trace</span></a>——方法内部调用路径,并输出方法路径上的每个节点上耗时</p></li>
<li><p><a class="reference internal" href="stack.html"><span class="doc">stack</span></a>——输出当前方法被调用的调用路径</p></li>
<li><p><a class="reference internal" href="tt.html"><span class="doc">tt</span></a>——方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测</p></li>
</ul>
</div>
<div class="section" id="options">
<span id="options"></span><h2>options<a class="headerlink" href="#options" title="永久链接至标题"></a></h2>
<h2>options<a class="headerlink" href="#options" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><a class="reference internal" href="options.html"><span class="doc">options</span></a>——查看或设置Arthas全局开关</li>
<li><p><a class="reference internal" href="options.html"><span class="doc">options</span></a>——查看或设置Arthas全局开关</p></li>
</ul>
</div>
<div class="section" id="">
<span id="id3"></span><h2>管道<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<p>Arthas支持使用管道对上述命令的结果进行进一步的处理<tt class="docutils literal">sm java.lang.String * | grep 'index'</tt></p>
<div class="section" id="id3">
<h2>管道<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>Arthas支持使用管道对上述命令的结果进行进一步的处理<code class="docutils literal notranslate"><span class="pre">sm</span> <span class="pre">java.lang.String</span> <span class="pre">*</span> <span class="pre">|</span> <span class="pre">grep</span> <span class="pre">'index'</span></code></p>
<ul class="simple">
<li>grep——搜索满足条件的结果</li>
<li>plaintext——将命令的结果去除ANSI颜色</li>
<li>wc——按行统计输出结果</li>
<li><p>grep——搜索满足条件的结果</p></li>
<li><p>plaintext——将命令的结果去除ANSI颜色</p></li>
<li><p>wc——按行统计输出结果</p></li>
</ul>
</div>
<div class="section" id="">
<span id="id4"></span><h2>后台异步任务<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id4">
<h2>后台异步任务<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<p>当线上出现偶发的问题比如需要watch某个条件而这个条件一天可能才会出现一次时异步后台任务就派上用场了详情请参考<a class="reference internal" href="async.html"><span class="doc">这里</span></a></p>
<ul class="simple">
<li>使用 &gt; 将结果重写向到日志文件,使用 &amp; 指定命令是后台运行session断开不影响任务执行生命周期默认为1天</li>
<li>jobs——列出所有job</li>
<li>kill——强制终止任务</li>
<li>fg——将暂停的任务拉到前台执行</li>
<li>bg——将暂停的任务放到后台执行</li>
<li><p>使用 &gt; 将结果重写向到日志文件,使用 &amp; 指定命令是后台运行session断开不影响任务执行生命周期默认为1天</p></li>
<li><p>jobs——列出所有job</p></li>
<li><p>kill——强制终止任务</p></li>
<li><p>fg——将暂停的任务拉到前台执行</p></li>
<li><p>bg——将暂停的任务放到后台执行</p></li>
</ul>
</div>
<div class="section" id="web-console">
<span id="web-console"></span><h2>Web Console<a class="headerlink" href="#web-console" title="永久链接至标题"></a></h2>
<h2>Web Console<a class="headerlink" href="#web-console" title="永久链接至标题"></a></h2>
<p>通过websocket连接Arthas。</p>
<div class="toctree-wrapper compound">
<ul>
@ -279,8 +288,8 @@
</ul>
</div>
</div>
<div class="section" id="">
<span id="id5"></span><h2>其他特性<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id5">
<h2>其他特性<a class="headerlink" href="#id5" title="永久链接至标题"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="async.html">异步命令支持</a></li>
@ -303,7 +312,7 @@
<a href="web-console.html" class="btn btn-neutral float-right" title="Web Console" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="quick-start.html" class="btn btn-neutral" title="快速入门" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="quick-start.html" class="btn btn-neutral float-left" title="快速入门" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -312,7 +321,7 @@
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -329,34 +338,16 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>表达式核心变量 &mdash; Arthas 3.1.1 文档</title>
<title>表达式核心变量 &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -35,21 +43,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -63,7 +66,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -91,15 +94,17 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -167,9 +172,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="">
<span id="id1"></span><h1>表达式核心变量<a class="headerlink" href="#" title="永久链接至标题"></a></h1>
<p>无论是匹配表达式也好、观察表达式也罢,他们核心判断变量都是围绕着一个 Arthas 中的通用通知对象 <tt class="docutils literal">Advice</tt> 进行。</p>
<div class="section" id="id1">
<h1>表达式核心变量<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<p>无论是匹配表达式也好、观察表达式也罢,他们核心判断变量都是围绕着一个 Arthas 中的通用通知对象 <code class="docutils literal notranslate"><span class="pre">Advice</span></code> 进行。</p>
<p>它的简略代码结构如下</p>
<div class="highlight-java notranslate"><div class="highlight hljs"><pre class="java">public class Advice {
@ -185,8 +190,7 @@
private final boolean isReturn;
// getter/setter
}
</pre></div>
} </pre></div>
</div>
<p>这里列一个表格来说明不同变量的含义</p>
<table border="1" class="docutils">
@ -238,10 +242,10 @@
<td align="left">辅助判断标记,当前的方法调用以正常返回的形式结束。</td>
</tr>
</tbody>
</table><p>所有变量都可以在表达式中直接使用,如果在表达式中编写了不符合 OGNL 脚本语法或者引入了不在表格中的变量,则退出命令的执行;用户可以根据当前的异常信息修正<tt class="docutils literal">条件表达式</tt><tt class="docutils literal">观察表达式</tt></p>
</table><p>所有变量都可以在表达式中直接使用,如果在表达式中编写了不符合 OGNL 脚本语法或者引入了不在表格中的变量,则退出命令的执行;用户可以根据当前的异常信息修正<code class="docutils literal notranslate"><span class="pre">条件表达式</span></code><code class="docutils literal notranslate"><span class="pre">观察表达式</span></code></p>
<ul class="simple">
<li>特殊用法请参考:<a class="reference external" href="https://github.com/alibaba/arthas/issues/71">https://github.com/alibaba/arthas/issues/71</a></li>
<li>OGNL表达式官网<a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">https://commons.apache.org/proper/commons-ognl/language-guide.html</a></li>
<li><p>特殊用法请参考:<a class="reference external" href="https://github.com/alibaba/arthas/issues/71">https://github.com/alibaba/arthas/issues/71</a></p></li>
<li><p>OGNL表达式官网<a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">https://commons.apache.org/proper/commons-ognl/language-guide.html</a></p></li>
</ul>
</div>
@ -256,7 +260,7 @@
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -273,34 +277,16 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas3.0的新特性 &mdash; Arthas 3.1.1 文档</title>
<title>Arthas3.0的新特性 &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -35,21 +43,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -63,7 +66,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -91,15 +94,17 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -168,36 +173,35 @@
<div itemprop="articleBody">
<div class="section" id="arthas3-0">
<span id="arthas3-0"></span><h1>Arthas3.0的新特性<a class="headerlink" href="#arthas3-0" title="永久链接至标题"></a></h1>
<div class="section" id="">
<span id="id1"></span><h2>在线诊断功能<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<h1>Arthas3.0的新特性<a class="headerlink" href="#arthas3-0" title="永久链接至标题"></a></h1>
<div class="section" id="id1">
<h2>在线诊断功能<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<p>Arthas3.0中最重要的特性,不需要登陆机器就可以对应用进行诊断,体验和本地诊断完全一致</p>
<div class="section" id="">
<span id="id2"></span><h3>使用步骤<a class="headerlink" href="#" title="永久链接至标题"></a></h3>
<div class="section" id="id2">
<h3>使用步骤<a class="headerlink" href="#id2" title="永久链接至标题"></a></h3>
<p>TODO</p>
</div>
<div class="section" id="">
<span id="id3"></span><h3>动图演示<a class="headerlink" href="#" title="永久链接至标题"></a></h3>
<div class="section" id="id3">
<h3>动图演示<a class="headerlink" href="#id3" title="永久链接至标题"></a></h3>
<p>TODO</p>
</div>
</div>
<div class="section" id="">
<span id="id4"></span><h2>管道支持<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<p>Arthas 3.0开始支持管道, 率先提供了<tt class="docutils literal">grep</tt>,<tt class="docutils literal">wc</tt>,<tt class="docutils literal">plaintext</tt>的支持。</p>
<div class="section" id="id4">
<h2>管道支持<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<p>Arthas 3.0开始支持管道, 率先提供了<code class="docutils literal notranslate"><span class="pre">grep</span></code>,<code class="docutils literal notranslate"><span class="pre">wc</span></code>,<code class="docutils literal notranslate"><span class="pre">plaintext</span></code>的支持。</p>
</div>
</div>
<div class="section" id="groovy">
<span id="groovy"></span><h1>去groovy依赖<a class="headerlink" href="#groovy" title="永久链接至标题"></a></h1>
<h1>去groovy依赖<a class="headerlink" href="#groovy" title="永久链接至标题"></a></h1>
<p>groovy表达式在arthas2.0中大量使用例如watch表达式</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add &quot;params + &#x27; &#x27; + returnObj&quot; params.size()==2
</pre></div>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add &quot;params + &#x27; &#x27; + returnObj&quot; params.size()==2</pre></div>
</div>
<p>其中<tt class="docutils literal">"params + ' ' + returnObj"</tt>以及<tt class="docutils literal">params.size()==2</tt>背后其实都使用了groovy来进行表达式求值如果反复大量的运行这些表达式groovy会创建大量的classloader打满perm区从而触发FGC。</p>
<p>其中<code class="docutils literal notranslate"><span class="pre">&quot;params</span> <span class="pre">+</span> <span class="pre">'</span> <span class="pre">'</span> <span class="pre">+</span> <span class="pre">returnObj&quot;</span></code>以及<code class="docutils literal notranslate"><span class="pre">params.size()==2</span></code>背后其实都使用了groovy来进行表达式求值如果反复大量的运行这些表达式groovy会创建大量的classloader打满perm区从而触发FGC。</p>
<p>为了避免这个问题Arthas 3.0中使用了ognl这个更加轻量的表达式求值库来代替groovy彻底解决了groovy引起的FGC风险。但由于这个替换导致原来使用groovy脚本编写的自定义脚本失效。这个问题留待后续解决。</p>
<p>在3.0中watch命令的表达式部分的书写有了一些改变详见<a class="reference external" href="https://alibaba.github.io/arthas/watch">这里</a></p>
<div class="section" id="rt">
<span id="rt"></span><h2>提升rt统计精度<a class="headerlink" href="#rt" title="永久链接至标题"></a></h2>
<p>Arthas 2.0中统计rt都是以<tt class="docutils literal">ms</tt>为单位对于某些比较小的方法调用耗时在毫秒以下的都会被认为是0ms造成trace总时间和各方法的时间相加不一致等问题虽然这里面确实会有误差主要Arthas自身的开销。Arthas 3.0中所有rt的单位统一改为使用<tt class="docutils literal">ns</tt>来统计精准捕获你的方法耗时让0ms这样无意义的统计数据不再出现</p>
<h2>提升rt统计精度<a class="headerlink" href="#rt" title="永久链接至标题"></a></h2>
<p>Arthas 2.0中统计rt都是以<code class="docutils literal notranslate"><span class="pre">ms</span></code>为单位对于某些比较小的方法调用耗时在毫秒以下的都会被认为是0ms造成trace总时间和各方法的时间相加不一致等问题虽然这里面确实会有误差主要Arthas自身的开销。Arthas 3.0中所有rt的单位统一改为使用<code class="docutils literal notranslate"><span class="pre">ns</span></code>来统计精准捕获你的方法耗时让0ms这样无意义的统计数据不再出现</p>
<div class="highlight-default notranslate"><pre class="literal-block">$ tt -l
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
------------------------------------------------------------------------------------------------------------------------------------------------------------
@ -210,11 +214,11 @@
</div>
</div>
<div class="section" id="watch-stack-trace">
<span id="watch-stack-trace"></span><h2>watch/stack/trace命令支持按耗时过滤<a class="headerlink" href="#watch-stack-trace" title="永久链接至标题"></a></h2>
<p>我们在trace的时候经常会出现某个方法间隙性的rt飙高但是我们只想知道rt高的时候是哪里慢了对于正常rt的方法我们并不关心Arthas 3.0支持了按<tt class="docutils literal">#cost</tt>(方法执行耗时,单位为<tt class="docutils literal">ms</tt>)进行过滤只输出符合条件的trace路径目前这三个命令的相关文档已经做了更新增加了该用法的示例。</p>
<h2>watch/stack/trace命令支持按耗时过滤<a class="headerlink" href="#watch-stack-trace" title="永久链接至标题"></a></h2>
<p>我们在trace的时候经常会出现某个方法间隙性的rt飙高但是我们只想知道rt高的时候是哪里慢了对于正常rt的方法我们并不关心Arthas 3.0支持了按<code class="docutils literal notranslate"><span class="pre">#cost</span></code>(方法执行耗时,单位为<code class="docutils literal notranslate"><span class="pre">ms</span></code>)进行过滤只输出符合条件的trace路径目前这三个命令的相关文档已经做了更新增加了该用法的示例。</p>
</div>
<div class="section" id="syspropsystemproperty">
<span id="syspropsystemproperty"></span><h2>sysprop命令操作SystemProperty<a class="headerlink" href="#syspropsystemproperty" title="永久链接至标题"></a></h2>
<h2>sysprop命令操作SystemProperty<a class="headerlink" href="#syspropsystemproperty" title="永久链接至标题"></a></h2>
<p>sysprop命令支持查看所有的系统属性以及针对特定属性进行查看和修改。</p>
<div class="highlight-default notranslate"><pre class="literal-block">$ sysprop
...
@ -240,8 +244,8 @@ production.mode=true</pre>
</div>
</div>
<div class="section" id="thread">
<span id="thread"></span><h2>thread命令支持指定采样时间<a class="headerlink" href="#thread" title="永久链接至标题"></a></h2>
<p>thread命令计算线程cpu占用的逻辑默认是采样100ms内各个线程的cpu使用情况并计算cpu消耗占比。有时候100ms的时间间隔太短看不出问题所在Arthas3.0中thread命令支持设置采样间隔(以<tt class="docutils literal">ms</tt>为单位)可以观察任意时间段内的cpu消耗占比情况。</p>
<h2>thread命令支持指定采样时间<a class="headerlink" href="#thread" title="永久链接至标题"></a></h2>
<p>thread命令计算线程cpu占用的逻辑默认是采样100ms内各个线程的cpu使用情况并计算cpu消耗占比。有时候100ms的时间间隔太短看不出问题所在Arthas3.0中thread命令支持设置采样间隔(以<code class="docutils literal notranslate"><span class="pre">ms</span></code>为单位)可以观察任意时间段内的cpu消耗占比情况。</p>
<div class="highlight-default notranslate"><pre class="literal-block">$ thread -i 1000
Threads Total: 74, NEW: 0, RUNNABLE: 17, BLOCKED: 0, WAITING: 15, TIMED_WAITING: 42, TERMINATED: 0
ID NAME GROUP PRIORITY STATE %CPU TIME INTERRUPTED DAEMON
@ -262,7 +266,7 @@ ID NAME GROU
</div>
</div>
<div class="section" id="trace">
<span id="trace"></span><h2>trace命令自动高亮显示最耗时方法调用<a class="headerlink" href="#trace" title="永久链接至标题"></a></h2>
<h2>trace命令自动高亮显示最耗时方法调用<a class="headerlink" href="#trace" title="永久链接至标题"></a></h2>
<p>trace命令现在会自动显示</p>
<p>![Untitled2](TODO /Untitled2.gif)</p>
</div>
@ -279,7 +283,7 @@ ID NAME GROU
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -296,34 +300,16 @@ ID NAME GROU
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas 3.0新特性介绍 &mdash; Arthas 3.1.1 文档</title>
<title>Arthas 3.0新特性介绍 &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -35,21 +43,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="../_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -63,7 +66,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -91,15 +94,17 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="../download.html">下载</a></li>
<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"><a class="reference internal" href="../commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="../web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="../docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -168,17 +173,17 @@
<div itemprop="articleBody">
<div class="section" id="arthas-3-0">
<span id="arthas-3-0"></span><h1>Arthas 3.0新特性介绍<a class="headerlink" href="#arthas-3-0" title="永久链接至标题"></a></h1>
<p>Arthas 3.0在架构上做了重大改造,通过引入<tt class="docutils literal">termd</tt>完整的支持了telnet协议并基于websocket封装了telnet协议实现了<tt class="docutils literal">Telnet over HTTP</tt>使得在线诊断成为了可能并且保证了本地启动telnet远程访问在线诊断三种方式的体验完全一致。都支持自动补全高亮显示等功能。并且支持<tt class="docutils literal">多人同时在线诊断</tt></p>
<div class="section" id="">
<span id="id1"></span><h2>在线诊断<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<h1>Arthas 3.0新特性介绍<a class="headerlink" href="#arthas-3-0" title="永久链接至标题"></a></h1>
<p>Arthas 3.0在架构上做了重大改造,通过引入<code class="docutils literal notranslate"><span class="pre">termd</span></code>完整的支持了telnet协议并基于websocket封装了telnet协议实现了<code class="docutils literal notranslate"><span class="pre">Telnet</span> <span class="pre">over</span> <span class="pre">HTTP</span></code>使得在线诊断成为了可能并且保证了本地启动telnet远程访问在线诊断三种方式的体验完全一致。都支持自动补全高亮显示等功能。并且支持<code class="docutils literal notranslate"><span class="pre">多人同时在线诊断</span></code></p>
<div class="section" id="id1">
<h2>在线诊断<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<p>Arthas 3.0最重要的特性通过Arthas在线诊断平台无需再登陆目标机器一键启动Arthas并开启诊断</p>
<p>![image](TODO image.png)</p>
<p>具体使用方法请参见<a class="reference external" href="https://github.com/alibaba/arthas/wiki/arthas_3_0/home">在线诊断使用说明</a></p>
</div>
<div class="section" id="">
<span id="id2"></span><h2>管道支持<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<p>Arthas 3.0开始支持管道, 率先提供了<tt class="docutils literal">grep</tt>,<tt class="docutils literal">wc</tt>,<tt class="docutils literal">plaintext</tt>的支持。</p>
<div class="section" id="id2">
<h2>管道支持<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>Arthas 3.0开始支持管道, 率先提供了<code class="docutils literal notranslate"><span class="pre">grep</span></code>,<code class="docutils literal notranslate"><span class="pre">wc</span></code>,<code class="docutils literal notranslate"><span class="pre">plaintext</span></code>的支持。</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash"> java.vendor.url http://java.oracle.com/
java.vm.vendor Oracle Corporation
java.runtime.name Java(TM) SE Runtime Environment
@ -195,12 +200,11 @@
java.vm.name Java HotSpot(TM) 64-Bit Server VM
java.specification.version 1.8
$ sysprop | grep java | wc -l
36
</pre></div>
36</pre></div>
</div>
</div>
<div class="section" id="">
<span id="id3"></span><h2>启动自检<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id3">
<h2>启动自检<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>针对启动时经常出现的权限问题在启动脚本中增加了自检逻辑脚本会自动判断目标进程是否具备attach权限并给出进一步的提示。</p>
<div class="highlight-default notranslate"><pre class="literal-block">[huxing.zhx@v125056161.bja /home/huxing.zhx]
$./as.sh 32260
@ -211,18 +215,17 @@ To solve this, choose one of the following command:
</div>
</div>
<div class="section" id="groovy">
<span id="groovy"></span><h2>去groovy依赖<a class="headerlink" href="#groovy" title="永久链接至标题"></a></h2>
<h2>去groovy依赖<a class="headerlink" href="#groovy" title="永久链接至标题"></a></h2>
<p>groovy表达式在arthas2.0中大量使用例如watch表达式</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add &quot;params + &#x27; &#x27; + returnObj&quot; params.size()==2
</pre></div>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add &quot;params + &#x27; &#x27; + returnObj&quot; params.size()==2</pre></div>
</div>
<p>其中<tt class="docutils literal">"params + ' ' + returnObj"</tt>以及<tt class="docutils literal">params.size()==2</tt>背后其实都使用了groovy来进行表达式求值如果反复大量的运行这些表达式groovy会创建大量的classloader打满perm区从而触发FGC。</p>
<p>其中<code class="docutils literal notranslate"><span class="pre">&quot;params</span> <span class="pre">+</span> <span class="pre">'</span> <span class="pre">'</span> <span class="pre">+</span> <span class="pre">returnObj&quot;</span></code>以及<code class="docutils literal notranslate"><span class="pre">params.size()==2</span></code>背后其实都使用了groovy来进行表达式求值如果反复大量的运行这些表达式groovy会创建大量的classloader打满perm区从而触发FGC。</p>
<p>为了避免这个问题Arthas 3.0中使用了ognl这个更加轻量的表达式求值库来代替groovy彻底解决了groovy引起的FGC风险。但由于这个替换导致原来使用groovy脚本编写的自定义脚本失效。这个问题留待后续解决。</p>
<p>在3.0中watch命令的表达式部分的书写有了一些改变详见<a class="reference external" href="https://alibaba.github.io/arthas/watch">这里</a></p>
</div>
<div class="section" id="rt">
<span id="rt"></span><h2>提升rt统计精度<a class="headerlink" href="#rt" title="永久链接至标题"></a></h2>
<p>Arthas 2.0中统计rt都是以<tt class="docutils literal">ms</tt>为单位对于某些比较小的方法调用耗时在毫秒以下的都会被认为是0ms造成trace总时间和各方法的时间相加不一致等问题虽然这里面确实会有误差主要Arthas自身的开销。Arthas 3.0中所有rt的单位统一改为使用<tt class="docutils literal">ns</tt>来统计精准捕获你的方法耗时让0ms这样无意义的统计数据不再出现</p>
<h2>提升rt统计精度<a class="headerlink" href="#rt" title="永久链接至标题"></a></h2>
<p>Arthas 2.0中统计rt都是以<code class="docutils literal notranslate"><span class="pre">ms</span></code>为单位对于某些比较小的方法调用耗时在毫秒以下的都会被认为是0ms造成trace总时间和各方法的时间相加不一致等问题虽然这里面确实会有误差主要Arthas自身的开销。Arthas 3.0中所有rt的单位统一改为使用<code class="docutils literal notranslate"><span class="pre">ns</span></code>来统计精准捕获你的方法耗时让0ms这样无意义的统计数据不再出现</p>
<div class="highlight-default notranslate"><pre class="literal-block">$ tt -l
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
------------------------------------------------------------------------------------------------------------------------------------------------------------
@ -235,8 +238,8 @@ To solve this, choose one of the following command:
</div>
</div>
<div class="section" id="watch-stack-trace">
<span id="watch-stack-trace"></span><h2>watch/stack/trace命令支持按耗时过滤<a class="headerlink" href="#watch-stack-trace" title="永久链接至标题"></a></h2>
<p>我们在trace的时候经常会出现某个方法间隙性的rt飙高但是我们只想知道rt高的时候是哪里慢了对于正常rt的方法我们并不关心Arthas 3.0支持了按<tt class="docutils literal">#cost</tt>(方法执行耗时,单位为<tt class="docutils literal">ms</tt>)进行过滤只输出符合条件的trace路径。</p>
<h2>watch/stack/trace命令支持按耗时过滤<a class="headerlink" href="#watch-stack-trace" title="永久链接至标题"></a></h2>
<p>我们在trace的时候经常会出现某个方法间隙性的rt飙高但是我们只想知道rt高的时候是哪里慢了对于正常rt的方法我们并不关心Arthas 3.0支持了按<code class="docutils literal notranslate"><span class="pre">#cost</span></code>(方法执行耗时,单位为<code class="docutils literal notranslate"><span class="pre">ms</span></code>)进行过滤只输出符合条件的trace路径。</p>
<p>具体用法为:</p>
<div class="highlight-default notranslate"><pre class="literal-block">trace/watch/stack class_name method cost_expression</pre>
</div>
@ -265,29 +268,29 @@ trace test.arthas.TestTraceServlet doGet #cost&gt;800
+---[0.018255ms] java.lang.StringBuilder:toString()
`---[0.028812ms] java.io.PrintWriter:write()</pre>
</div>
<p>上述命令只有当<tt class="docutils literal">test.arthas.TestTraceServlet#doGet</tt>方法执行耗时大于800ms时才会输出。</p>
<p>上述命令只有当<code class="docutils literal notranslate"><span class="pre">test.arthas.TestTraceServlet#doGet</span></code>方法执行耗时大于800ms时才会输出。</p>
</div>
<div class="section" id="trace">
<span id="trace"></span><h2>trace命令优化<a class="headerlink" href="#trace" title="永久链接至标题"></a></h2>
<div class="section" id="">
<span id="id4"></span><h3>自动高亮显示最耗时方法调用<a class="headerlink" href="#" title="永久链接至标题"></a></h3>
<h2>trace命令优化<a class="headerlink" href="#trace" title="永久链接至标题"></a></h2>
<div class="section" id="id4">
<h3>自动高亮显示最耗时方法调用<a class="headerlink" href="#id4" title="永久链接至标题"></a></h3>
<p>trace命令现在会自动显示</p>
<p><img alt="image" src="arthas_3_0/TODO/image.png" /></p>
<p><img alt="arthas_3_0/TODO/image.png" src="arthas_3_0/TODO/image.png" />image</p>
</div>
<div class="section" id="trace">
<span id="id5"></span><h3>带条件过滤的多级trace<a class="headerlink" href="#trace" title="永久链接至标题"></a></h3>
<div class="section" id="id5">
<h3>带条件过滤的多级trace<a class="headerlink" href="#id5" title="永久链接至标题"></a></h3>
<p>目前trace默认只输出一级方法调用耗时有时候并不能完全看出问题。但是如果展开多级的话每一个方法的耗时都统计会造成方法数量迅速膨胀大大增加trace的开销。</p>
<p>TODO</p>
</div>
<div class="section" id="eagleeyetraceid">
<span id="eagleeyetraceid"></span><h3>显示当前线程的信息及eagleeye的traceId<a class="headerlink" href="#eagleeyetraceid" title="永久链接至标题"></a></h3>
<h3>显示当前线程的信息及eagleeye的traceId<a class="headerlink" href="#eagleeyetraceid" title="永久链接至标题"></a></h3>
<div class="highlight-default notranslate"><pre class="literal-block">trace test.arthas.TestTraceServlet doGet
`---thread_name=http-bio-8080-exec-10;id=da;is_daemon=true;priority=5;TCCL=org.apache.catalina.loader.WebappClassLoader;trace_id=1e09489014879085429791006d969d</pre>
</div>
</div>
</div>
<div class="section" id="syspropsystemproperty">
<span id="syspropsystemproperty"></span><h2>sysprop命令操作SystemProperty<a class="headerlink" href="#syspropsystemproperty" title="永久链接至标题"></a></h2>
<h2>sysprop命令操作SystemProperty<a class="headerlink" href="#syspropsystemproperty" title="永久链接至标题"></a></h2>
<p>sysprop命令支持查看所有的系统属性以及针对特定属性进行查看和修改。</p>
<div class="highlight-default notranslate"><pre class="literal-block">$ sysprop
...
@ -313,8 +316,8 @@ production.mode=true</pre>
</div>
</div>
<div class="section" id="thread">
<span id="thread"></span><h2>thread命令支持指定采样时间<a class="headerlink" href="#thread" title="永久链接至标题"></a></h2>
<p>thread命令计算线程cpu占用的逻辑默认是采样100ms内各个线程的cpu使用情况并计算cpu消耗占比。有时候100ms的时间间隔太短看不出问题所在Arthas3.0中thread命令支持设置采样间隔(以<tt class="docutils literal">ms</tt>为单位)可以观察任意时间段内的cpu消耗占比情况。</p>
<h2>thread命令支持指定采样时间<a class="headerlink" href="#thread" title="永久链接至标题"></a></h2>
<p>thread命令计算线程cpu占用的逻辑默认是采样100ms内各个线程的cpu使用情况并计算cpu消耗占比。有时候100ms的时间间隔太短看不出问题所在Arthas3.0中thread命令支持设置采样间隔(以<code class="docutils literal notranslate"><span class="pre">ms</span></code>为单位)可以观察任意时间段内的cpu消耗占比情况。</p>
<div class="highlight-default notranslate"><pre class="literal-block">$ thread -i 1000
Threads Total: 74, NEW: 0, RUNNABLE: 17, BLOCKED: 0, WAITING: 15, TIMED_WAITING: 42, TERMINATED: 0
ID NAME GROUP PRIORITY STATE %CPU TIME INTERRUPTED DAEMON
@ -347,7 +350,7 @@ ID NAME GROU
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -364,34 +367,16 @@ ID NAME GROU
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas异步调用 &mdash; Arthas 3.1.1 文档</title>
<title>Arthas异步调用 &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -37,21 +45,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,25 +96,26 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="advanced-use.html">进阶使用</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#">基础命令</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#id2">基础命令</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#jvm">jvm相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#class-classloader">class/classloader相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#monitor-watch-trace">monitor/watch/trace相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#options">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#">管道</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#">后台异步任务</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#id3">管道</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#id4">后台异步任务</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#web-console">Web Console</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="advanced-use.html#">其他特性</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="advanced-use.html#id5">其他特性</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#">异步命令支持</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#">1. 使用&amp;在后台执行任务</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id1">1. 使用&amp;在后台执行任务</a></li>
<li class="toctree-l4"><a class="reference internal" href="#jobs">2. 通过jobs查看任务</a></li>
<li class="toctree-l4"><a class="reference internal" href="#">3. 任务暂停和取消</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id2">3. 任务暂停和取消</a></li>
<li class="toctree-l4"><a class="reference internal" href="#fgbg">4. fg、bg命令将命令转到前台、后台继续执行</a></li>
<li class="toctree-l4"><a class="reference internal" href="#">5. 任务输出重定向</a></li>
<li class="toctree-l4"><a class="reference internal" href="#">6. 停止命令</a></li>
<li class="toctree-l4"><a class="reference internal" href="#">7. 其他</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id3">5. 任务输出重定向</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id4">6. 停止命令</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id5">7. 其他</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="save-log.html">执行结果存日志</a></li>
@ -122,12 +126,13 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -198,18 +203,17 @@
<div itemprop="articleBody">
<div class="section" id="arthas">
<span id="arthas"></span><h1>Arthas异步调用<a class="headerlink" href="#arthas" title="永久链接至标题"></a></h1>
<h1>Arthas异步调用<a class="headerlink" href="#arthas" title="永久链接至标题"></a></h1>
<p>arthas中的异步调用使用了仿linux系统任务相关的命令。<a class="reference external" href="https://ehlxr.me/2017/01/18/Linux-%E4%B8%AD-fg%E3%80%81bg%E3%80%81jobs%E3%80%81-%E6%8C%87%E4%BB%A4/">linux任务相关介绍</a></p>
<div class="section" id="">
<span id="id1"></span><h2>1. 使用&amp;在后台执行任务<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id1">
<h2>1. 使用&amp;在后台执行任务<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<p>比如希望执行后台执行trace命令那么调用下面命令</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">trace Test t &amp;
</pre></div>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">trace Test t &amp; </pre></div>
</div>
<p>这时命令在后台执行可以在console中继续执行其他命令。</p>
</div>
<div class="section" id="jobs">
<span id="jobs"></span><h2>2. 通过jobs查看任务<a class="headerlink" href="#jobs" title="永久链接至标题"></a></h2>
<h2>2. 通过jobs查看任务<a class="headerlink" href="#jobs" title="永久链接至标题"></a></h2>
<p>如果希望查看当前有哪些arthas任务在执行可以执行jobs命令执行结果如下</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ jobs
[10]*
@ -217,58 +221,55 @@
execution count : 19
start time : Fri Sep 22 09:59:55 CST 2017
timeout date : Sat Sep 23 09:59:55 CST 2017
session : 3648e874-5e69-473f-9eed-7f89660b079b (current)
</pre></div>
session : 3648e874-5e69-473f-9eed-7f89660b079b (current)</pre></div>
</div>
<p>可以看到目前有一个后台任务在执行。</p>
<ul class="simple">
<li>job id是10, <tt class="docutils literal">*</tt> 表示此job是当前session创建</li>
<li>状态是Stopped</li>
<li>execution count是执行次数从启动开始已经执行了19次</li>
<li>timeout date是超时的时间到这个时间任务将会自动超时退出</li>
<li><p>job id是10, <code class="docutils literal notranslate"><span class="pre">*</span></code> 表示此job是当前session创建</p></li>
<li><p>状态是Stopped</p></li>
<li><p>execution count是执行次数从启动开始已经执行了19次</p></li>
<li><p>timeout date是超时的时间到这个时间任务将会自动超时退出</p></li>
</ul>
</div>
<div class="section" id="">
<span id="id2"></span><h2>3. 任务暂停和取消<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<p>当任务正在前台执行,比如直接调用命令<tt class="docutils literal">trace Test t</tt>或者调用后台执行命令<tt class="docutils literal">trace Test t &</tt>后又通过<tt class="docutils literal">fg</tt>命令将任务转到前台。这时console中无法继续执行命令但是可以接收并处理以下事件</p>
<div class="section" id="id2">
<h2>3. 任务暂停和取消<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>当任务正在前台执行,比如直接调用命令<code class="docutils literal notranslate"><span class="pre">trace</span> <span class="pre">Test</span> <span class="pre">t</span></code>或者调用后台执行命令<code class="docutils literal notranslate"><span class="pre">trace</span> <span class="pre">Test</span> <span class="pre">t</span> <span class="pre">&amp;</span></code>后又通过<code class="docutils literal notranslate"><span class="pre">fg</span></code>命令将任务转到前台。这时console中无法继续执行命令但是可以接收并处理以下事件</p>
<ul class="simple">
<li>ctrl + z将任务暂停。通过<tt class="docutils literal">jbos</tt>查看任务状态将会变为Stopped通过<tt class="docutils literal">bg <job-id></tt>或者<tt class="docutils literal">fg <job-id></tt>可让任务重新开始执行</li>
<li>ctrl + c停止任务</li>
<li>ctrl + d按照linux语义应当是退出终端目前arthas中是空实现不处理</li>
<li><p>ctrl + z将任务暂停。通过<code class="docutils literal notranslate"><span class="pre">jbos</span></code>查看任务状态将会变为Stopped通过<code class="docutils literal notranslate"><span class="pre">bg</span> <span class="pre">&lt;job-id&gt;</span></code>或者<code class="docutils literal notranslate"><span class="pre">fg</span> <span class="pre">&lt;job-id&gt;</span></code>可让任务重新开始执行</p></li>
<li><p>ctrl + c停止任务</p></li>
<li><p>ctrl + d按照linux语义应当是退出终端目前arthas中是空实现不处理</p></li>
</ul>
</div>
<div class="section" id="fgbg">
<span id="fgbg"></span><h2>4. fg、bg命令将命令转到前台、后台继续执行<a class="headerlink" href="#fgbg" title="永久链接至标题"></a></h2>
<h2>4. fg、bg命令将命令转到前台、后台继续执行<a class="headerlink" href="#fgbg" title="永久链接至标题"></a></h2>
<ul class="simple">
<li>任务在后台执行或者暂停状态(<tt class="docutils literal">ctrl + z</tt>暂停任务)时,执行<tt class="docutils literal">fg <job-id></tt>将可以把对应的任务转到前台继续执行。在前台执行时无法在console中执行其他命令</li>
<li>当任务处于暂停状态时(<tt class="docutils literal">ctrl + z</tt>暂停任务),执行<tt class="docutils literal">bg <job-id></tt>将可以把对应的任务在后台继续执行</li>
<li>非当前session创建的job只能由当前session fg到前台执行</li>
<li><p>任务在后台执行或者暂停状态(<code class="docutils literal notranslate"><span class="pre">ctrl</span> <span class="pre">+</span> <span class="pre">z</span></code>暂停任务)时,执行<code class="docutils literal notranslate"><span class="pre">fg</span> <span class="pre">&lt;job-id&gt;</span></code>将可以把对应的任务转到前台继续执行。在前台执行时无法在console中执行其他命令</p></li>
<li><p>当任务处于暂停状态时(<code class="docutils literal notranslate"><span class="pre">ctrl</span> <span class="pre">+</span> <span class="pre">z</span></code>暂停任务),执行<code class="docutils literal notranslate"><span class="pre">bg</span> <span class="pre">&lt;job-id&gt;</span></code>将可以把对应的任务在后台继续执行</p></li>
<li><p>非当前session创建的job只能由当前session fg到前台执行</p></li>
</ul>
</div>
<div class="section" id="">
<span id="id3"></span><h2>5. 任务输出重定向<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<p>可通过<tt class="docutils literal">></tt>或者<tt class="docutils literal">>></tt>将任务输出结果输出到指定的文件中,可以和<tt class="docutils literal">&</tt>一起使用实现arthas命令的异步调用。比如</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ trace Test t &gt;&gt; test.out &amp;
</pre></div>
<div class="section" id="id3">
<h2>5. 任务输出重定向<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>可通过<code class="docutils literal notranslate"><span class="pre">&gt;</span></code>或者<code class="docutils literal notranslate"><span class="pre">&gt;&gt;</span></code>将任务输出结果输出到指定的文件中,可以和<code class="docutils literal notranslate"><span class="pre">&amp;</span></code>一起使用实现arthas命令的异步调用。比如</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ trace Test t &gt;&gt; test.out &amp;</pre></div>
</div>
<p>这时trace命令会在后台执行并且把结果输出到~/logs/arthas-cache/test.out。可继续执行其他命令。并可查看文件中的命令执行结果。</p>
<p>当连接到远程的arthas server时可能无法查看远程机器的文件arthas同时支持了自动重定向到本地缓存路径。使用方法如下</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ trace Test t &gt;&gt; &amp;
job id : 2
cache location : /Users/gehui/logs/arthas-cache/28198/2
</pre></div>
cache location : /Users/gehui/logs/arthas-cache/28198/2</pre></div>
</div>
<p>可以看到并没有指定重定向文件位置arthas自动重定向到缓存中了执行命令后会输出job id和cache location。cache location就是重定向文件的路径在系统logs目录下路径包括pid和job id避免和其他任务冲突。命令输出结果到<tt class="docutils literal">/Users/gehui/logs/arthas-cache/28198/2</tt>job id为2。</p>
<p>可以看到并没有指定重定向文件位置arthas自动重定向到缓存中了执行命令后会输出job id和cache location。cache location就是重定向文件的路径在系统logs目录下路径包括pid和job id避免和其他任务冲突。命令输出结果到<code class="docutils literal notranslate"><span class="pre">/Users/gehui/logs/arthas-cache/28198/2</span></code>job id为2。</p>
</div>
<div class="section" id="">
<span id="id4"></span><h2>6. 停止命令<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<p>异步执行的命令如果希望停止可执行kill &lt;job-id&gt;</p>
<div class="section" id="id4">
<h2>6. 停止命令<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<p>异步执行的命令如果希望停止可执行kill <job-id></p>
</div>
<div class="section" id="">
<span id="id5"></span><h2>7. 其他<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id5">
<h2>7. 其他<a class="headerlink" href="#id5" title="永久链接至标题"></a></h2>
<ul class="simple">
<li>最多同时支持8个命令使用重定向将结果写日志</li>
<li>请勿同时开启过多的后台异步命令以免对目标JVM性能造成影响</li>
<li><p>最多同时支持8个命令使用重定向将结果写日志</p></li>
<li><p>请勿同时开启过多的后台异步命令以免对目标JVM性能造成影响</p></li>
</ul>
</div>
</div>
@ -284,7 +285,7 @@ cache location : /Users/gehui/logs/arthas-cache/28198/2
<a href="save-log.html" class="btn btn-neutral float-right" title="执行结果存日志" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="web-console.html" class="btn btn-neutral" title="Web Console" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="web-console.html" class="btn btn-neutral float-left" title="Web Console" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -293,7 +294,7 @@ cache location : /Users/gehui/logs/arthas-cache/28198/2
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -310,34 +311,16 @@ cache location : /Users/gehui/logs/arthas-cache/28198/2
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>批处理功能 &mdash; Arthas 3.1.1 文档</title>
<title>批处理功能 &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -37,21 +45,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,21 +96,22 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="advanced-use.html">进阶使用</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#">基础命令</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#id2">基础命令</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#jvm">jvm相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#class-classloader">class/classloader相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#monitor-watch-trace">monitor/watch/trace相关</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#options">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#">管道</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#">后台异步任务</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#id3">管道</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#id4">后台异步任务</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#web-console">Web Console</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="advanced-use.html#">其他特性</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="advanced-use.html#id5">其他特性</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="async.html">异步命令支持</a></li>
<li class="toctree-l3"><a class="reference internal" href="save-log.html">执行结果存日志</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">批处理的支持</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#">使用方法</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id2">使用方法</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference external" href="https://github.com/alibaba/arthas/issues/11">ognl表达式的用法说明</a></li>
@ -116,12 +120,13 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -191,22 +196,23 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="">
<span id="id1"></span><h1>批处理功能<a class="headerlink" href="#" title="永久链接至标题"></a></h1>
<div class="section" id="id1">
<h1>批处理功能<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<blockquote>
<div>通过批处理功能arthas支持一次性批量运行多个命令并取得命令执行的结果。</div></blockquote>
<div class="section" id="">
<span id="id2"></span><h2>使用方法<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="">
<span id="id3"></span><h3>第一步: 创建你的批处理脚本<a class="headerlink" href="#" title="永久链接至标题"></a></h3>
<p>这里我们新建了一个<tt class="docutils literal">test.as</tt>脚本,为了规范,我们采用了.as后缀名但事实上任意的本文文件都ok。</p>
<div><p>通过批处理功能arthas支持一次性批量运行多个命令并取得命令执行的结果。</p>
</div></blockquote>
<div class="section" id="id2">
<h2>使用方法<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<div class="section" id="id3">
<h3>第一步: 创建你的批处理脚本<a class="headerlink" href="#id3" title="永久链接至标题"></a></h3>
<p>这里我们新建了一个<code class="docutils literal notranslate"><span class="pre">test.as</span></code>脚本,为了规范,我们采用了.as后缀名但事实上任意的本文文件都ok。</p>
<blockquote>
<div><p>注意事项</p>
<ul class="simple">
<li>目前需要每个命令占一行</li>
<li>dashboard务必开启批处理模式(<tt class="docutils literal">-b</tt>),指定执行次数(<tt class="docutils literal">-n</tt>),否则会导致批处理脚本无法终止</li>
<li>watch/tt/trace/monitor/stack等命令务必指定执行次数(<tt class="docutils literal">-n</tt>),否则会导致批处理脚本无法终止</li>
<li>可以使用异步后台任务,如 <tt class="docutils literal">watch c.t.X test returnObj > &</tt>,让命令一直在后台运行,通过日志获取结果,<a class="reference internal" href="async.html"><span class="doc">获取更多异步任务的信息</span></a></li>
<li><p>目前需要每个命令占一行</p></li>
<li><p>dashboard务必开启批处理模式(<code class="docutils literal notranslate"><span class="pre">-b</span></code>),指定执行次数(<code class="docutils literal notranslate"><span class="pre">-n</span></code>),否则会导致批处理脚本无法终止</p></li>
<li><p>watch/tt/trace/monitor/stack等命令务必指定执行次数(<code class="docutils literal notranslate"><span class="pre">-n</span></code>),否则会导致批处理脚本无法终止</p></li>
<li><p>可以使用异步后台任务,如 <code class="docutils literal notranslate"><span class="pre">watch</span> <span class="pre">c.t.X</span> <span class="pre">test</span> <span class="pre">returnObj</span> <span class="pre">&gt;</span> <span class="pre">&amp;</span></code>,让命令一直在后台运行,通过日志获取结果,<a class="reference internal" href="async.html"><span class="doc">获取更多异步任务的信息</span></a></p></li>
</ul>
</div></blockquote>
<div class="highlight-default notranslate"><pre class="literal-block">➜ arthas git:(develop) cat /var/tmp/test.as
@ -217,17 +223,15 @@ thread
sc -d org.apache.commons.lang.StringUtils</pre>
</div>
</div>
<div class="section" id="">
<span id="id4"></span><h3>第二步: 运行你的批处理脚本<a class="headerlink" href="#" title="永久链接至标题"></a></h3>
<p>通过<tt class="docutils literal">-b</tt>开启批处理模式, <tt class="docutils literal">-f</tt>执行脚本文件, 批处理脚本默认会输出到标准输出中,可以将结果重定向到文件中。</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">./as.sh -b -f /var/tmp/test.as 56328 &gt; test.out
</pre></div>
<div class="section" id="id4">
<h3>第二步: 运行你的批处理脚本<a class="headerlink" href="#id4" title="永久链接至标题"></a></h3>
<p>通过<code class="docutils literal notranslate"><span class="pre">-b</span></code>开启批处理模式, <code class="docutils literal notranslate"><span class="pre">-f</span></code>执行脚本文件, 批处理脚本默认会输出到标准输出中,可以将结果重定向到文件中。</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">./as.sh -b -f /var/tmp/test.as 56328 &gt; test.out</pre></div>
</div>
</div>
<div class="section" id="">
<span id="id5"></span><h3>第三步: 查看运行结果<a class="headerlink" href="#" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">cat test.out
</pre></div>
<div class="section" id="id5">
<h3>第三步: 查看运行结果<a class="headerlink" href="#id5" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">cat test.out</pre></div>
</div>
</div>
</div>
@ -244,7 +248,7 @@ sc -d org.apache.commons.lang.StringUtils</pre>
<a href="commands.html" class="btn btn-neutral float-right" title="命令列表" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="save-log.html" class="btn btn-neutral" title="执行结果存日志" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="save-log.html" class="btn btn-neutral float-left" title="执行结果存日志" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -253,7 +257,7 @@ sc -d org.apache.commons.lang.StringUtils</pre>
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -270,34 +274,16 @@ sc -d org.apache.commons.lang.StringUtils</pre>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>cat &mdash; Arthas 3.1.1 文档</title>
<title>cat &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -37,21 +45,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,6 +96,7 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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">
@ -101,12 +105,15 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="vmoption.html">vmoption</a></li>
<li class="toctree-l2"><a class="reference internal" href="logger.html">logger</a></li>
<li class="toctree-l2"><a class="reference internal" href="mbean.html">mbean</a></li>
<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>
<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>
<li class="toctree-l2"><a class="reference internal" href="heapdump.html">heapdump</a></li>
<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>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
@ -122,12 +129,13 @@
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas">Arthas 基础命令</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -198,11 +206,11 @@
<div itemprop="articleBody">
<div class="section" id="cat">
<span id="cat"></span><h1>cat<a class="headerlink" href="#cat" title="永久链接至标题"></a></h1>
<h1>cat<a class="headerlink" href="#cat" title="永久链接至标题"></a></h1>
<blockquote>
<div>打印文件内容和linux里的cat命令类似。</div></blockquote>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ cat /tmp/a.txt
</pre></div>
<div><p>打印文件内容和linux里的cat命令类似。</p>
</div></blockquote>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ cat /tmp/a.txt</pre></div>
</div>
</div>
@ -217,7 +225,7 @@
<a href="pwd.html" class="btn btn-neutral float-right" title="pwd" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="tt.html" class="btn btn-neutral" title="tt" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="tt.html" class="btn btn-neutral float-left" title="tt" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -226,7 +234,7 @@
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -243,34 +251,16 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>classloader &mdash; Arthas 3.1.1 文档</title>
<title>classloader &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -37,21 +45,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,6 +96,7 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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">
@ -101,22 +105,25 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="vmoption.html">vmoption</a></li>
<li class="toctree-l2"><a class="reference internal" href="logger.html">logger</a></li>
<li class="toctree-l2"><a class="reference internal" href="mbean.html">mbean</a></li>
<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>
<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>
<li class="toctree-l2"><a class="reference internal" href="heapdump.html">heapdump</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">classloader</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#">参数说明</a></li>
<li class="toctree-l3"><a class="reference internal" href="#">使用参考</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#">按类加载类型查看统计信息</a></li>
<li class="toctree-l4"><a class="reference internal" href="#">按类加载实例查看统计信息</a></li>
<li class="toctree-l4"><a class="reference internal" href="#classloader">查看ClassLoader的继承树</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id1">参数说明</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">使用参考</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#id3">按类加载类型查看统计信息</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id4">按类加载实例查看统计信息</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id5">查看ClassLoader的继承树</a></li>
<li class="toctree-l4"><a class="reference internal" href="#urlclassloaderurls">查看URLClassLoader实际的urls</a></li>
<li class="toctree-l4"><a class="reference internal" href="#classloaderresource">使用ClassLoader去查找resource</a></li>
<li class="toctree-l4"><a class="reference internal" href="#classloader">使用ClassLoader去加载类</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id6">使用ClassLoader去加载类</a></li>
</ul>
</li>
</ul>
@ -134,12 +141,13 @@
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas">Arthas 基础命令</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -210,13 +218,14 @@
<div itemprop="articleBody">
<div class="section" id="classloader">
<span id="classloader"></span><h1>classloader<a class="headerlink" href="#classloader" title="永久链接至标题"></a></h1>
<h1>classloader<a class="headerlink" href="#classloader" title="永久链接至标题"></a></h1>
<blockquote>
<div>查看classloader的继承树urls类加载信息</div></blockquote>
<p><tt class="docutils literal">classloader</tt> 命令将 JVM 中所有的classloader的信息统计出来并可以展示继承树urls等。</p>
<p>可以让指定的classloader去getResources打印出所有查找到的resources的url。对于<tt class="docutils literal">ResourceNotFoundException</tt>比较有用。</p>
<div class="section" id="">
<span id="id1"></span><h2>参数说明<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div><p>查看classloader的继承树urls类加载信息</p>
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">classloader</span></code> 命令将 JVM 中所有的classloader的信息统计出来并可以展示继承树urls等。</p>
<p>可以让指定的classloader去getResources打印出所有查找到的resources的url。对于<code class="docutils literal notranslate"><span class="pre">ResourceNotFoundException</span></code>比较有用。</p>
<div class="section" id="id1">
<h2>参数说明<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<table border="1" class="docutils">
<thead>
<tr>
@ -251,10 +260,10 @@
</tr>
</tbody>
</table></div>
<div class="section" id="">
<span id="id2"></span><h2>使用参考<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="">
<span id="id3"></span><h3>按类加载类型查看统计信息<a class="headerlink" href="#" title="永久链接至标题"></a></h3>
<div class="section" id="id2">
<h2>使用参考<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<div class="section" id="id3">
<h3>按类加载类型查看统计信息<a class="headerlink" href="#id3" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ classloader
name numberOfInstances loadedCountTotal
com.taobao.arthas.agent.ArthasClassloader 1 2115
@ -262,59 +271,53 @@
sun.reflect.DelegatingClassLoader 5 5
sun.misc.Launcher$AppClassLoader 1 4
sun.misc.Launcher$ExtClassLoader 1 1
Affect(row-cnt:5) cost in 3 ms.
</pre></div>
Affect(row-cnt:5) cost in 3 ms.</pre></div>
</div>
</div>
<div class="section" id="">
<span id="id4"></span><h3>按类加载实例查看统计信息<a class="headerlink" href="#" title="永久链接至标题"></a></h3>
<div class="section" id="id4">
<h3>按类加载实例查看统计信息<a class="headerlink" href="#id4" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ classloader -l
name loadedCount hash parent
BootstrapClassLoader 1861 null null
com.taobao.arthas.agent.ArthasClassloader@68b31f0a 2115 68b31f0a sun.misc.Launcher$ExtClassLoader@66350f69
sun.misc.Launcher$AppClassLoader@3d4eac69 4 3d4eac69 sun.misc.Launcher$ExtClassLoader@66350f69
sun.misc.Launcher$ExtClassLoader@66350f69 1 66350f69 null
Affect(row-cnt:4) cost in 2 ms.
</pre></div>
Affect(row-cnt:4) cost in 2 ms.</pre></div>
</div>
</div>
<div class="section" id="classloader">
<span id="id5"></span><h3>查看ClassLoader的继承树<a class="headerlink" href="#classloader" title="永久链接至标题"></a></h3>
<div class="section" id="id5">
<h3>查看ClassLoader的继承树<a class="headerlink" href="#id5" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ classloader -t
+-BootstrapClassLoader
+-sun.misc.Launcher$ExtClassLoader@66350f69
+-com.taobao.arthas.agent.ArthasClassloader@68b31f0a
+-sun.misc.Launcher$AppClassLoader@3d4eac69
Affect(row-cnt:4) cost in 3 ms.
</pre></div>
Affect(row-cnt:4) cost in 3 ms.</pre></div>
</div>
</div>
<div class="section" id="urlclassloaderurls">
<span id="urlclassloaderurls"></span><h3>查看URLClassLoader实际的urls<a class="headerlink" href="#urlclassloaderurls" title="永久链接至标题"></a></h3>
<h3>查看URLClassLoader实际的urls<a class="headerlink" href="#urlclassloaderurls" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ classloader -c 3d4eac69
file:/private/tmp/arthas-demo.jar
file:/Users/hengyunabc/.arthas/lib/3.0.5/arthas/arthas-agent.jar
Affect(row-cnt:9) cost in 3 ms.
</pre></div>
Affect(row-cnt:9) cost in 3 ms.</pre></div>
</div>
</div>
<div class="section" id="classloaderresource">
<span id="classloaderresource"></span><h3>使用ClassLoader去查找resource<a class="headerlink" href="#classloaderresource" title="永久链接至标题"></a></h3>
<h3>使用ClassLoader去查找resource<a class="headerlink" href="#classloaderresource" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ classloader -c 3d4eac69 -r META-INF/MANIFEST.MF
jar:file:/System/Library/Java/Extensions/MRJToolkit.jar!/META-INF/MANIFEST.MF
jar:file:/private/tmp/arthas-demo.jar!/META-INF/MANIFEST.MF
jar:file:/Users/hengyunabc/.arthas/lib/3.0.5/arthas/arthas-agent.jar!/META-INF/MANIFEST.MF
</pre></div>
jar:file:/Users/hengyunabc/.arthas/lib/3.0.5/arthas/arthas-agent.jar!/META-INF/MANIFEST.MF</pre></div>
</div>
<p>也可以尝试查找类的class文件</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ classloader -c 1b6d3586 -r java/lang/String.class
jar:file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/rt.jar!/java/lang/String.class
</pre></div>
jar:file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/rt.jar!/java/lang/String.class</pre></div>
</div>
</div>
<div class="section" id="classloader">
<span id="id6"></span><h3>使用ClassLoader去加载类<a class="headerlink" href="#classloader" title="永久链接至标题"></a></h3>
<div class="section" id="id6">
<h3>使用ClassLoader去加载类<a class="headerlink" href="#id6" title="永久链接至标题"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ classloader -c 3d4eac69 --load demo.MathGame
load class success.
class-info demo.MathGame
@ -336,8 +339,7 @@ load class success.
super-class +-java.lang.Object
class-loader +-sun.misc.Launcher$AppClassLoader@3d4eac69
+-sun.misc.Launcher$ExtClassLoader@66350f69
classLoaderHash 3d4eac69
</pre></div>
classLoaderHash 3d4eac69</pre></div>
</div>
</div>
</div>
@ -354,7 +356,7 @@ load class success.
<a href="mc.html" class="btn btn-neutral float-right" title="mc" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="jad.html" class="btn btn-neutral" title="jad" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="jad.html" class="btn btn-neutral float-left" title="jad" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -363,7 +365,7 @@ load class success.
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -380,34 +382,16 @@ load class success.
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>命令列表 &mdash; Arthas 3.1.1 文档</title>
<title>命令列表 &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -37,21 +45,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,6 +96,7 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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="current reference internal" href="#">命令列表</a><ul>
@ -101,12 +105,15 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="vmoption.html">vmoption</a></li>
<li class="toctree-l2"><a class="reference internal" href="logger.html">logger</a></li>
<li class="toctree-l2"><a class="reference internal" href="mbean.html">mbean</a></li>
<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>
<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>
<li class="toctree-l2"><a class="reference internal" href="heapdump.html">heapdump</a></li>
<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>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
@ -122,12 +129,13 @@
<li class="toctree-l2"><a class="reference internal" href="#arthas">Arthas 基础命令</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -195,8 +203,8 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="">
<span id="id1"></span><h1>命令列表<a class="headerlink" href="#" title="永久链接至标题"></a></h1>
<div class="section" id="id1">
<h1>命令列表<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="dashboard.html">dashboard</a></li>
@ -204,12 +212,15 @@
<li class="toctree-l1"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l1"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l1"><a class="reference internal" href="sysenv.html">sysenv</a></li>
<li class="toctree-l1"><a class="reference internal" href="vmoption.html">vmoption</a></li>
<li class="toctree-l1"><a class="reference internal" href="logger.html">logger</a></li>
<li class="toctree-l1"><a class="reference internal" href="mbean.html">mbean</a></li>
<li class="toctree-l1"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l1"><a class="reference internal" href="ognl.html">ognl</a></li>
<li class="toctree-l1"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l1"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l1"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l1"><a class="reference internal" href="heapdump.html">heapdump</a></li>
<li class="toctree-l1"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l1"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l1"><a class="reference internal" href="mc.html">mc</a></li>
@ -225,17 +236,18 @@
</ul>
</div>
<div class="section" id="arthas">
<span id="arthas"></span><h2>Arthas 基础命令<a class="headerlink" href="#arthas" title="永久链接至标题"></a></h2>
<h2>Arthas 基础命令<a class="headerlink" href="#arthas" title="永久链接至标题"></a></h2>
<ul class="simple">
<li>help——查看命令帮助信息</li>
<li>cls——清空当前屏幕区域</li>
<li>session——查看当前会话的信息</li>
<li><a class="reference internal" href="reset.html"><span class="doc">reset</span></a>——重置增强类,将被 Arthas 增强过的类全部还原Arthas 服务端关闭时会重置所有增强过的类</li>
<li>version——输出当前目标 Java 进程所加载的 Arthas 版本号</li>
<li>history——打印命令历史</li>
<li>quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响</li>
<li>shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出</li>
<li><a class="reference internal" href="keymap.html"><span class="doc">keymap</span></a>——Arthas快捷键列表及自定义快捷键</li>
<li><p>help——查看命令帮助信息</p></li>
<li><p>cls——清空当前屏幕区域</p></li>
<li><p>session——查看当前会话的信息</p></li>
<li><p><a class="reference internal" href="reset.html"><span class="doc">reset</span></a>——重置增强类,将被 Arthas 增强过的类全部还原Arthas 服务端关闭时会重置所有增强过的类</p></li>
<li><p>version——输出当前目标 Java 进程所加载的 Arthas 版本号</p></li>
<li><p>history——打印命令历史</p></li>
<li><p>quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响</p></li>
<li><p>stop——和<code class="docutils literal notranslate"><span class="pre">shutdown</span></code>命令一致</p></li>
<li><p>shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出</p></li>
<li><p><a class="reference internal" href="keymap.html"><span class="doc">keymap</span></a>——Arthas快捷键列表及自定义快捷键</p></li>
</ul>
</div>
</div>
@ -251,7 +263,7 @@
<a href="dashboard.html" class="btn btn-neutral float-right" title="dashboard" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="batch-support.html" class="btn btn-neutral" title="批处理功能" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="batch-support.html" class="btn btn-neutral float-left" title="批处理功能" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -260,7 +272,7 @@
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -277,34 +289,16 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>联系我们 &mdash; Arthas 3.1.1 文档</title>
<title>联系我们 &mdash; Arthas 3.1.2 文档</title>
@ -19,38 +19,41 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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="prev" title="Release Notes" href="release-notes.html" />
<link rel="prev" title="Docker" href="docker.html" />
<script src="_static/center_page.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -64,7 +67,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -92,18 +95,20 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">QQ群/钉钉群</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#issues">Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="#">钉钉群</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">钉钉群</a></li>
<li class="toctree-l2"><a class="reference internal" href="#qq">QQ群</a></li>
</ul>
</li>
@ -173,21 +178,21 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="">
<span id="id1"></span><h1>联系我们<a class="headerlink" href="#" title="永久链接至标题"></a></h1>
<div class="section" id="id1">
<h1>联系我们<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="issues">
<span id="issues"></span><h2>Issues<a class="headerlink" href="#issues" title="永久链接至标题"></a></h2>
<h2>Issues<a class="headerlink" href="#issues" title="永久链接至标题"></a></h2>
<p>使用疑问意见可以直接在Issues里提出 <a class="reference external" href="https://github.com/alibaba/arthas/issues">https://github.com/alibaba/arthas/issues</a></p>
</div>
<div class="section" id="">
<span id="id2"></span><h2>钉钉群<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id2">
<h2>钉钉群<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>Arthas开源交流钉钉群21965291 ,搜索群号即可加入。</p>
<p><img alt="web console" src="_images/dingding_qr.jpg" /></p>
<p><img alt="_images/dingding_qr.jpg" src="_images/dingding_qr.jpg" /></p>
</div>
<div class="section" id="qq">
<span id="qq"></span><h2>QQ群<a class="headerlink" href="#qq" title="永久链接至标题"></a></h2>
<h2>QQ群<a class="headerlink" href="#qq" title="永久链接至标题"></a></h2>
<p>Arthas开源交流QQ群916328269</p>
<p><img alt="web console" src="_images/qqgroup_qr.jpg" /></p>
<p><img alt="_images/qqgroup_qr.jpg" src="_images/qqgroup_qr.jpg" /></p>
</div>
</div>
@ -200,7 +205,7 @@
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="release-notes.html" class="btn btn-neutral" title="Release Notes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="docker.html" class="btn btn-neutral float-left" title="Docker" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -209,7 +214,7 @@
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -226,34 +231,16 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>dashboard &mdash; Arthas 3.1.1 文档</title>
<title>dashboard &mdash; Arthas 3.1.2 文档</title>
@ -19,13 +19,21 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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" />
@ -37,21 +45,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,25 +96,29 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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 current"><a class="current reference internal" href="#">dashboard</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#">使用参考</a></li>
<li class="toctree-l3"><a class="reference internal" href="#">数据说明</a></li>
<li class="toctree-l3"><a class="reference internal" href="#">截图展示</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id1">使用参考</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">数据说明</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">截图展示</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></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>
<li class="toctree-l2"><a class="reference internal" href="vmoption.html">vmoption</a></li>
<li class="toctree-l2"><a class="reference internal" href="logger.html">logger</a></li>
<li class="toctree-l2"><a class="reference internal" href="mbean.html">mbean</a></li>
<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>
<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>
<li class="toctree-l2"><a class="reference internal" href="heapdump.html">heapdump</a></li>
<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>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
@ -127,12 +134,13 @@
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas">Arthas 基础命令</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -203,12 +211,13 @@
<div itemprop="articleBody">
<div class="section" id="dashboard">
<span id="dashboard"></span><h1>dashboard<a class="headerlink" href="#dashboard" title="永久链接至标题"></a></h1>
<h1>dashboard<a class="headerlink" href="#dashboard" title="永久链接至标题"></a></h1>
<blockquote>
<div>当前系统的实时数据面板,按 ctrl+c 退出。</div></blockquote>
<div><p>当前系统的实时数据面板,按 ctrl+c 退出。</p>
</div></blockquote>
<p>当运行在Ali-tomcat时会显示当前tomcat的实时信息如HTTP请求的qps, rt, 错误数, 线程池信息等等。</p>
<div class="section" id="">
<span id="id1"></span><h2>使用参考<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id1">
<h2>使用参考<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<div class="highlight-default notranslate"><pre class="literal-block">$ dashboard
ID NAME GROUP PRIORITY STATE %CPU TIME INTERRUPTED DAEMON
889 RMI TCP Connection(15)-30.10.166. RMI Runtime 9 RUNNABLE 48 0:5 false true
@ -245,23 +254,23 @@ processors 4 threadpool
uptime 16020s busy 0</pre>
</div>
</div>
<div class="section" id="">
<span id="id2"></span><h2>数据说明<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id2">
<h2>数据说明<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<ul class="simple">
<li>ID: Java级别的线程ID注意这个ID不能跟jstack中的nativeID一一对应</li>
<li>NAME: 线程名</li>
<li>GROUP: 线程组名</li>
<li>PRIORITY: 线程优先级, 1~10之间的数字越大表示优先级越高</li>
<li>STATE: 线程的状态</li>
<li>CPU%: 线程消耗的cpu占比采样100ms将所有线程在这100ms内的cpu使用量求和再算出每个线程的cpu使用占比。</li>
<li>TIME: 线程运行总时间,数据格式为<tt class="docutils literal">分:秒</tt></li>
<li>INTERRUPTED: 线程当前的中断位状态</li>
<li>DAEMON: 是否是daemon线程</li>
<li><p>ID: Java级别的线程ID注意这个ID不能跟jstack中的nativeID一一对应</p></li>
<li><p>NAME: 线程名</p></li>
<li><p>GROUP: 线程组名</p></li>
<li><p>PRIORITY: 线程优先级, 1~10之间的数字越大表示优先级越高</p></li>
<li><p>STATE: 线程的状态</p></li>
<li><p>CPU%: 线程消耗的cpu占比采样100ms将所有线程在这100ms内的cpu使用量求和再算出每个线程的cpu使用占比。</p></li>
<li><p>TIME: 线程运行总时间,数据格式为<code class="docutils literal notranslate"><span class="pre">分:秒</span></code></p></li>
<li><p>INTERRUPTED: 线程当前的中断位状态</p></li>
<li><p>DAEMON: 是否是daemon线程</p></li>
</ul>
</div>
<div class="section" id="">
<span id="id3"></span><h2>截图展示<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<p><img alt="alt text" src="_images/dashboard.png" /></p>
<div class="section" id="id3">
<h2>截图展示<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p><img alt="dashboard" src="_images/dashboard.png" /></p>
</div>
</div>
@ -276,7 +285,7 @@ uptime 16020s busy
<a href="thread.html" class="btn btn-neutral float-right" title="thread" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="commands.html" class="btn btn-neutral" title="命令列表" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="commands.html" class="btn btn-neutral float-left" title="命令列表" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -285,7 +294,7 @@ uptime 16020s busy
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -302,34 +311,16 @@ uptime 16020s busy
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Docker &mdash; Arthas 3.1.1 文档</title>
<title>Docker &mdash; Arthas 3.1.2 文档</title>
@ -19,39 +19,42 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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="Release Notes" href="release-notes.html" />
<link rel="next" title="联系我们" href="contact-us.html" />
<link rel="prev" title="options" href="options.html" />
<script src="_static/center_page.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,11 +96,13 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Docker</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#docker">通过Docker快速入门</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id1">通过Docker快速入门</a></li>
<li class="toctree-l2"><a class="reference internal" href="#dockerjava">诊断Docker里的Java进程</a></li>
<li class="toctree-l2"><a class="reference internal" href="#k8sjava">诊断k8s里容器里的Java进程</a></li>
<li class="toctree-l2"><a class="reference internal" href="#arthas">把Arthas安装到基础镜像里</a></li>
@ -106,8 +111,8 @@
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -176,21 +181,19 @@
<div itemprop="articleBody">
<div class="section" id="docker">
<span id="docker"></span><h1>Docker<a class="headerlink" href="#docker" title="永久链接至标题"></a></h1>
<div class="section" id="docker">
<span id="id1"></span><h2>通过Docker快速入门<a class="headerlink" href="#docker" title="永久链接至标题"></a></h2>
<h1>Docker<a class="headerlink" href="#docker" title="永久链接至标题"></a></h1>
<div class="section" id="id1">
<h2>通过Docker快速入门<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<ol>
<li><p class="first">删除本地已有的<tt class="docutils literal">arthas-demo</tt> docker container非必要</p>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">$ docker stop arthas-demo || true &amp;&amp; docker rm arthas-demo || true
</pre></div>
<li><p>删除本地已有的<code class="docutils literal notranslate"><span class="pre">arthas-demo</span></code> docker container非必要</p>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">$ docker stop arthas-demo || true &amp;&amp; docker rm arthas-demo || true</pre></div>
</div>
</li>
<li><p class="first">启动<tt class="docutils literal">arthas-demo</tt></p>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">$ docker run --name arthas-demo -it hengyunabc/arthas:latest /bin/sh -c &quot;java -jar /opt/arthas/arthas-demo.jar&quot;
</pre></div>
<li><p>启动<code class="docutils literal notranslate"><span class="pre">arthas-demo</span></code></p>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">$ docker run --name arthas-demo -it hengyunabc/arthas:latest /bin/sh -c &quot;java -jar /opt/arthas/arthas-demo.jar&quot;</pre></div>
</div>
</li>
<li><p class="first">启动<tt class="docutils literal">arthas-boot</tt>来进行诊断</p>
<li><p>启动<code class="docutils literal notranslate"><span class="pre">arthas-boot</span></code>来进行诊断</p>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">$ docker exec -it arthas-demo /bin/sh -c &quot;java -jar /opt/arthas/arthas-boot.jar&quot;
* [1]: 9 jar
@ -207,26 +210,23 @@
wiki: https://alibaba.github.io/arthas
version: 3.0.5
pid: 9
time: 2018-12-18 11:30:36
</pre></div>
time: 2018-12-18 11:30:36</pre></div>
</div>
</li>
</ol>
</div>
<div class="section" id="dockerjava">
<span id="dockerjava"></span><h2>诊断Docker里的Java进程<a class="headerlink" href="#dockerjava" title="永久链接至标题"></a></h2>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">docker exec -it ${containerId} /bin/bash -c &quot;wget https://alibaba.github.io/arthas/arthas-boot.jar &amp;&amp; java -jar arthas-boot.jar&quot;
</pre></div>
<h2>诊断Docker里的Java进程<a class="headerlink" href="#dockerjava" title="永久链接至标题"></a></h2>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">docker exec -it ${containerId} /bin/bash -c &quot;wget https://alibaba.github.io/arthas/arthas-boot.jar &amp;&amp; java -jar arthas-boot.jar&quot;</pre></div>
</div>
</div>
<div class="section" id="k8sjava">
<span id="k8sjava"></span><h2>诊断k8s里容器里的Java进程<a class="headerlink" href="#k8sjava" title="永久链接至标题"></a></h2>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">kubectl exec -it ${pod} --container ${containerId} -- /bin/bash -c &quot;wget https://alibaba.github.io/arthas/arthas-boot.jar &amp;&amp; java -jar arthas-boot.jar&quot;
</pre></div>
<h2>诊断k8s里容器里的Java进程<a class="headerlink" href="#k8sjava" title="永久链接至标题"></a></h2>
<div class="highlight-sh notranslate"><div class="highlight hljs"><pre class="sh">kubectl exec -it ${pod} --container ${containerId} -- /bin/bash -c &quot;wget https://alibaba.github.io/arthas/arthas-boot.jar &amp;&amp; java -jar arthas-boot.jar&quot;</pre></div>
</div>
</div>
<div class="section" id="arthas">
<span id="arthas"></span><h2>把Arthas安装到基础镜像里<a class="headerlink" href="#arthas" title="永久链接至标题"></a></h2>
<h2>把Arthas安装到基础镜像里<a class="headerlink" href="#arthas" title="永久链接至标题"></a></h2>
<p>可以很简单把Arthas安装到你的Docker镜像里。</p>
<div class="highlight-default notranslate"><pre class="literal-block">FROM openjdk:8-jdk-alpine
@ -246,10 +246,10 @@ COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas</pre>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="release-notes.html" class="btn btn-neutral float-right" title="Release Notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="contact-us.html" class="btn btn-neutral float-right" title="联系我们" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="options.html" class="btn btn-neutral" title="options" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="options.html" class="btn btn-neutral float-left" title="options" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -258,7 +258,7 @@ COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas</pre>
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -275,34 +275,16 @@ COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas</pre>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -0,0 +1,276 @@
<!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">
<title>下载 &mdash; Arthas 3.1.2 文档</title>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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="快速入门" href="quick-start.html" />
<link rel="prev" title="Arthas Install" href="install-detail.html" />
<script src="_static/center_page.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
</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">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
3.1.2
</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">
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">下载</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id2">下载全量包</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id3">下载离线文档</a></li>
</ul>
</li>
<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"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</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>下载</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/download.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="id1">
<h1>下载<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="id2">
<h2>下载全量包<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>最新版本,点击下载:<a class="reference external" href="http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&amp;g=com.taobao.arthas&amp;a=arthas-packaging&amp;e=zip&amp;c=doc&amp;v=LATEST"><img alt="Arthas" src="https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square" /></a></p>
<p>解压后,在文件夹里有<code class="docutils literal notranslate"><span class="pre">arthas-boot.jar</span></code>,直接用<code class="docutils literal notranslate"><span class="pre">java</span> <span class="pre">-jar</span></code>的方式启动:</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">java -jar arthas-boot.jar</pre></div>
</div>
<p>打印帮助信息:</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">java -jar arthas-boot.jar -h</pre></div>
</div>
</div>
<div class="section" id="id3">
<h2>下载离线文档<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>下载文档:<a class="reference external" href="http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&amp;g=com.taobao.arthas&amp;a=arthas-packaging&amp;e=zip&amp;c=doc&amp;v=LATEST"><img alt="Arthas" src="https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square" /></a></p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="quick-start.html" class="btn btn-neutral float-right" title="快速入门" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="install-detail.html" class="btn btn-neutral float-left" title="Arthas Install" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</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>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.5.0/highlightjs-line-numbers.min.js"></script>
<script>
document.querySelectorAll('div.hljs > pre').forEach(function(block) {
hljs.highlightBlock(block);
hljs.lineNumbersBlock(block);
});
</script>
<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);
})();
</script>
</body>
</html>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>dump &mdash; Arthas 3.1.1 文档</title>
<title>dump &mdash; Arthas 3.1.2 文档</title>
@ -19,39 +19,42 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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>
<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="jad" href="jad.html" />
<link rel="next" title="heapdump" href="heapdump.html" />
<link rel="prev" title="sm" href="sm.html" />
<script src="_static/center_page.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -65,7 +68,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -93,6 +96,7 @@
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<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">
@ -101,16 +105,19 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="vmoption.html">vmoption</a></li>
<li class="toctree-l2"><a class="reference internal" href="logger.html">logger</a></li>
<li class="toctree-l2"><a class="reference internal" href="mbean.html">mbean</a></li>
<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>
<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 current"><a class="current reference internal" href="#">dump</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#">参数说明</a></li>
<li class="toctree-l3"><a class="reference internal" href="#">使用参考</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id1">参数说明</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">使用参考</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="heapdump.html">heapdump</a></li>
<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>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
@ -126,12 +133,13 @@
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas">Arthas 基础命令</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">参与贡献</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
@ -202,11 +210,12 @@
<div itemprop="articleBody">
<div class="section" id="dump">
<span id="dump"></span><h1>dump<a class="headerlink" href="#dump" title="永久链接至标题"></a></h1>
<h1>dump<a class="headerlink" href="#dump" title="永久链接至标题"></a></h1>
<blockquote>
<div>dump 已加载类的 bytecode 到特定目录</div></blockquote>
<div class="section" id="">
<span id="id1"></span><h2>参数说明<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div><p>dump 已加载类的 bytecode 到特定目录</p>
</div></blockquote>
<div class="section" id="id1">
<h2>参数说明<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<table border="1" class="docutils">
<thead>
<tr>
@ -229,20 +238,18 @@
</tr>
</tbody>
</table></div>
<div class="section" id="">
<span id="id2"></span><h2>使用参考<a class="headerlink" href="#" title="永久链接至标题"></a></h2>
<div class="section" id="id2">
<h2>使用参考<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ dump java.lang.String
HASHCODE CLASSLOADER LOCATION
null /Users/admin/logs/arthas/classdump/java/lang/String.class
Affect(row-cnt:1) cost in 119 ms.
</pre></div>
Affect(row-cnt:1) cost in 119 ms.</pre></div>
</div>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ dump demo.*
HASHCODE CLASSLOADER LOCATION
3d4eac69 +-sun.misc.Launcher$AppClassLoader@3d4eac69 /Users/admin/logs/arthas/classdump/sun.misc.Launcher$AppClassLoader-3d4eac69/demo/MathGame.class
+-sun.misc.Launcher$ExtClassLoader@66350f69
Affect(row-cnt:1) cost in 39 ms.
</pre></div>
Affect(row-cnt:1) cost in 39 ms.</pre></div>
</div>
</div>
</div>
@ -255,10 +262,10 @@ Affect(row-cnt:1) cost in 39 ms.
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="jad.html" class="btn btn-neutral float-right" title="jad" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="heapdump.html" class="btn btn-neutral float-right" title="heapdump" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="sm.html" class="btn btn-neutral" title="sm" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="sm.html" class="btn btn-neutral float-left" title="sm" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
@ -267,7 +274,7 @@ Affect(row-cnt:1) cost in 39 ms.
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -284,34 +291,16 @@ Affect(row-cnt:1) cost in 39 ms.
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'zh_CN',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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/translations.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: f7419269c739acc9def815e7e3128401
config: b74880748efa4fc405243d0f3c787e7d
tags: 645f666f9bcd5a90fca523b33c5a78b7

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>&lt;no title&gt; &mdash; Arthas 3.1.1 documentation</title>
<title>&lt;no title&gt; &mdash; Arthas 3.1.2 documentation</title>
@ -19,13 +19,20 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<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/js/theme.js"></script>
<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" />
@ -35,21 +42,16 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
<script src="_static/js/modernizr.min.js"></script>
</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">
<div class="wy-side-nav-search">
<div class="wy-side-nav-search" >
@ -63,7 +65,7 @@
<div class="version">
3.1.1
3.1.2
</div>
@ -90,15 +92,17 @@
<ul>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=en">Online tutorials(Recommend)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">Download</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING">Compile and debug/CONTRIBUTING</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
</ul>
@ -178,7 +182,7 @@
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors.
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
@ -195,33 +199,16 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.1',
LANGUAGE:'en',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</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="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

@ -22,9 +22,12 @@ Advanced Usage
* [jvm](jvm.md) - show JVM information
* [sysprop](sysprop.md) - view/modify system properties
* [sysenv](sysenv.md) — view system environment variables
* [vmoption](vmoption.md) - view/modify the vm diagnostic options.
* [logger](logger.md) - print the logger information, update the logger level
* [getstatic](getstatic.md) - examine class's static properties
* **New!** [ognl](ognl.md) - execute ongl expression
* **New!** [mbean](mbean.md) - show Mbean information
* [ognl](ognl.md) - execute ongl expression
* [mbean](mbean.md) - show Mbean information
* [heapdump](heapdump.md) - dump java heap in hprof binary format, like `jmap`
## class/classloader

@ -6,6 +6,8 @@ All Commands
* [jvm](jvm.md)
* [sysprop](sysprop.md)
* [sysenv](sysenv.md)
* [vmoption](vmoption.md)
* [logger](logger.md)
* [mbean](mbean.md)
* [getstatic](getstatic.md)
@ -14,6 +16,7 @@ All Commands
* [sc](sc.md)
* [sm](sm.md)
* [dump](dump.md)
* [heapdump](heapdump.md)
* [jad](jad.md)
* [classloader](classloader.md)
@ -40,6 +43,7 @@ All Commands
* version - print out Arthas's version
* history - view command history
* quit - exit the current Arthas client without affecting other clients
* stop - the same as `shutdown` command
* shutdown - terminate the Arthas server, all the Arthas clients connecting to this server will be disconnected
* [keymap](keymap.md) - list all Arthas keyboard shortcuts and shortcut customizations.

@ -58,4 +58,4 @@ uptime 16020s busy
### Screenshot
![alt text](../_static/dashboard.png "dashboard")
![](../_static/dashboard.png "dashboard")

@ -0,0 +1,23 @@
Download
===
## Download full package
Latest Version, Click To Download: [![](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=doc&v=LATEST)
Download and unzip, find `arthas-boot.jar` in the directory. Start with `java` command:
```bash
java -jar arthas-boot.jar
```
Print usage:
```bash
java -jar arthas-boot.jar -h
```
## Download Offline Help Documentation
Latest Version Documentation, Click To Download:[![](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.taobao.arthas&a=arthas-packaging&e=zip&c=doc&v=LATEST)

@ -0,0 +1,34 @@
heapdump
===
> dump java heap in hprof binary format, like `jmap`.
### Usage
#### Dump to file
```bash
[arthas@58205]$ heapdump /tmp/dump.hprof
Dumping heap to /tmp/dump.hprof...
Heap dump file created
```
#### Dump only live objects
```bash
[arthas@58205]$ heapdump --live /tmp/dump.hprof
Dumping heap to /tmp/dump.hprof...
Heap dump file created
```
#### Dump to tmp file
```bash
[arthas@58205]$ heapdump
Dumping heap to /var/folders/my/wy7c9w9j5732xbkcyt1mb4g40000gp/T/heapdump2019-09-03-16-385121018449645518991.hprof...
Heap dump file created
```

@ -3,7 +3,7 @@ Arthas Documentation
**[中文文档/Chinese Documentation](https://alibaba.github.io/arthas/)**
![arthas](arthas.png)
![](arthas.png)
Arthas is a Java diagnostic tool open-sourced by Alibaba middleware team. It is widely adopted and popular among the developers inside Alibaba. Arthas helps developers in trouble-shooting issues in production environment for Java based applications without modifying code or restarting servers.
@ -40,12 +40,14 @@ Contents
* [Online tutorials(Recommend)](https://alibaba.github.io/arthas/arthas-tutorials?language=en)
* [Installation](install-detail.md)
* [Download](download.md)
* [Quick start](quick-start.md)
* [Advanced usage](advanced-use.md)
* [Commands](commands.md)
* [WebConsole](web-console.md)
* [Docker](docker.md)
* [User cases](https://github.com/alibaba/arthas/issues?q=label%3Auser-case)
* [Questions and answers](https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered)
* [Fork me at GitHub](https://github.com/alibaba/arthas)
* [CONTRIBUTING](https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md)
* [Release Notes](release-notes.md)
* [Compile and debug/CONTRIBUTING](https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md)
* [Release Notes](https://github.com/alibaba/arthas/releases)

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save