mirror of
https://github.com/alibaba/arthas.git
synced 2024-04-21 10:21:39 +00:00
update vmoption/vmtool doc
This commit is contained in:
@@ -29,10 +29,16 @@ import com.taobao.middleware.cli.annotations.Summary;
|
||||
* @author hengyunabc 2019-09-02
|
||||
*
|
||||
*/
|
||||
// @formatter:off
|
||||
@Name("vmoption")
|
||||
@Summary("Display, and update the vm diagnostic options.")
|
||||
@Description("\nExamples:\n" + " vmoption\n" + " vmoption PrintGCDetails\n" + " vmoption PrintGCDetails true\n"
|
||||
+ Constants.WIKI + Constants.WIKI_HOME + "vmoption")
|
||||
@Description("\nExamples:\n" +
|
||||
" vmoption\n" +
|
||||
" vmoption PrintGC\n" +
|
||||
" vmoption PrintGC true\n" +
|
||||
" vmoption PrintGCDetails true\n" +
|
||||
Constants.WIKI + Constants.WIKI_HOME + "vmoption")
|
||||
//@formatter:on
|
||||
public class VMOptionCommand extends AnnotatedCommand {
|
||||
private static final Logger logger = LoggerFactory.getLogger(VMOptionCommand.class);
|
||||
|
||||
|
||||
@@ -40,16 +40,26 @@ vmoption
|
||||
#### View individual option
|
||||
|
||||
```bash
|
||||
[arthas@56963]$ vmoption PrintGCDetails
|
||||
KEY VALUE ORIGIN WRITEABLE
|
||||
---------------------------------------------------------------------------------------------
|
||||
PrintGCDetails false MANAGEMENT true
|
||||
$ vmoption PrintGC
|
||||
KEY VALUE ORIGIN WRITEABLE
|
||||
---------------------------------------------------------------------------------
|
||||
PrintGC false MANAGEMENT true
|
||||
```
|
||||
|
||||
#### Update individual option
|
||||
|
||||
```bash
|
||||
[arthas@56963]$ vmoption PrintGCDetails true
|
||||
$ vmoption PrintGC true
|
||||
Successfully updated the vm option.
|
||||
PrintGCDetails=true
|
||||
NAME BEFORE-VALUE AFTER-VALUE
|
||||
------------------------------------
|
||||
PrintGC false true
|
||||
```
|
||||
|
||||
```bash
|
||||
$ vmoption PrintGCDetails true
|
||||
Successfully updated the vm option.
|
||||
NAME BEFORE-VALUE AFTER-VALUE
|
||||
-------------------------------------------
|
||||
PrintGCDetails false true
|
||||
```
|
||||
@@ -79,4 +79,6 @@ vmtool --action getInstances --classLoaderClass org.springframework.boot.loader.
|
||||
|
||||
```bash
|
||||
vmtool --action forceGc
|
||||
```
|
||||
```
|
||||
|
||||
* Use the [`vmoption`](vmoption.md) command to dynamically turn on the `PrintGC` option.
|
||||
@@ -40,16 +40,26 @@ vmoption
|
||||
#### 查看指定的option
|
||||
|
||||
```bash
|
||||
[arthas@56963]$ vmoption PrintGCDetails
|
||||
KEY VALUE ORIGIN WRITEABLE
|
||||
---------------------------------------------------------------------------------------------
|
||||
PrintGCDetails false MANAGEMENT true
|
||||
$ vmoption PrintGC
|
||||
KEY VALUE ORIGIN WRITEABLE
|
||||
---------------------------------------------------------------------------------
|
||||
PrintGC false MANAGEMENT true
|
||||
```
|
||||
|
||||
#### 更新指定的option
|
||||
|
||||
```bash
|
||||
[arthas@56963]$ vmoption PrintGCDetails true
|
||||
$ vmoption PrintGC true
|
||||
Successfully updated the vm option.
|
||||
PrintGCDetails=true
|
||||
NAME BEFORE-VALUE AFTER-VALUE
|
||||
------------------------------------
|
||||
PrintGC false true
|
||||
```
|
||||
|
||||
```bash
|
||||
$ vmoption PrintGCDetails true
|
||||
Successfully updated the vm option.
|
||||
NAME BEFORE-VALUE AFTER-VALUE
|
||||
-------------------------------------------
|
||||
PrintGCDetails false true
|
||||
```
|
||||
|
||||
@@ -80,4 +80,6 @@ vmtool --action getInstances --classLoaderClass org.springframework.boot.loader.
|
||||
|
||||
```bash
|
||||
vmtool --action forceGc
|
||||
```
|
||||
```
|
||||
|
||||
* 可以结合 [`vmoption`](vmoption.md) 命令动态打开`PrintGC`开关。
|
||||
@@ -13,8 +13,8 @@
|
||||
|
||||
Examples:
|
||||
vmoption
|
||||
vmoption PrintGCDetails
|
||||
vmoption PrintGCDetails true
|
||||
vmoption PrintGC
|
||||
vmoption PrintGC true
|
||||
|
||||
WIKI:
|
||||
https://arthas.aliyun.com/doc/vmoption
|
||||
@@ -61,35 +61,53 @@
|
||||
|
||||
### 查看指定的option
|
||||
|
||||
`vmoption PrintGCDetails`{{execute T2}}
|
||||
`vmoption PrintGC`{{execute T2}}
|
||||
|
||||
```bash
|
||||
[arthas@56963]$ vmoption PrintGCDetails
|
||||
KEY VALUE ORIGIN WRITEABLE
|
||||
---------------------------------------------------------------------------------------------
|
||||
PrintGCDetails false MANAGEMENT true
|
||||
$ vmoption PrintGC
|
||||
KEY VALUE ORIGIN WRITEABLE
|
||||
---------------------------------------------------------------------------------
|
||||
PrintGC false MANAGEMENT true
|
||||
```
|
||||
|
||||
### 更新指定的option
|
||||
|
||||
`vmoption PrintGC true`{{execute T2}}
|
||||
|
||||
```bash
|
||||
$ vmoption PrintGC true
|
||||
Successfully updated the vm option.
|
||||
NAME BEFORE-VALUE AFTER-VALUE
|
||||
------------------------------------
|
||||
PrintGC false true
|
||||
```
|
||||
|
||||
再使用`vmtool`命令执行强制GC,则可以在`Terminal 1`看到打印出GC日志:
|
||||
|
||||
`vmtool --action forceGc`{{execute T2}}
|
||||
|
||||
```
|
||||
[GC (JvmtiEnv ForceGarbageCollection) 33752K->19564K(251392K), 0.0082960 secs]
|
||||
[Full GC (JvmtiEnv ForceGarbageCollection) 19564K->17091K(166912K), 0.0271085 secs]
|
||||
```
|
||||
|
||||
### 配置打印GC详情
|
||||
|
||||
`vmoption PrintGCDetails true`{{execute T2}}
|
||||
|
||||
```bash
|
||||
[arthas@56963]$ vmoption PrintGCDetails true
|
||||
$ vmoption PrintGCDetails true
|
||||
Successfully updated the vm option.
|
||||
PrintGCDetails=true
|
||||
NAME BEFORE-VALUE AFTER-VALUE
|
||||
-------------------------------------------
|
||||
PrintGCDetails false true
|
||||
```
|
||||
|
||||
此时,切换到arthas demo 运行所在的`Terminal`,使用`Ctrl+c`退出,发现比之前多打印了GC垃圾回收信息:
|
||||
再使用`vmtool`命令执行强制GC,则可以在`Terminal 1`看到打印出GC详情:
|
||||
|
||||
`vmtool --action forceGc`{{execute T2}}
|
||||
|
||||
```bash
|
||||
Heap
|
||||
def new generation total 10432K, used 5682K [0x00000000f4800000, 0x00000000f5350000, 0x00000000f8550000)
|
||||
eden space 9280K, 61% used [0x00000000f4800000, 0x00000000f4d8cad0, 0x00000000f5110000)
|
||||
from space 1152K, 0% used [0x00000000f5110000, 0x00000000f5110000, 0x00000000f5230000)
|
||||
to space 1152K, 0% used [0x00000000f5230000, 0x00000000f5230000, 0x00000000f5350000)
|
||||
tenured generation total 22992K, used 13795K [0x00000000f8550000, 0x00000000f9bc4000, 0x0000000100000000)
|
||||
the space 22992K, 59% used [0x00000000f8550000, 0x00000000f92c8cc8, 0x00000000f92c8e00, 0x00000000f9bc4000)
|
||||
Metaspace used 14926K, capacity 15128K, committed 15360K, reserved 1062912K
|
||||
class space used 1895K, capacity 1954K, committed 2048K, reserved 1048576K
|
||||
```
|
||||
[GC (JvmtiEnv ForceGarbageCollection) [PSYoungGen: 4395K->352K(76288K)] 21487K->17443K(166912K), 0.0013122 secs] [Times: user=0.01 sys=0.00, real=0.00 secs]
|
||||
[Full GC (JvmtiEnv ForceGarbageCollection) [PSYoungGen: 352K->0K(76288K)] [ParOldGen: 17091K->16076K(88064K)] 17443K->16076K(164352K), [Metaspace: 20651K->20651K(1069056K)], 0.0251548 secs] [Times: user=0.15 sys=0.01, real=0.02 secs]
|
||||
```
|
||||
@@ -13,8 +13,8 @@ Display, and update the vm diagnostic options.
|
||||
|
||||
Examples:
|
||||
vmoption
|
||||
vmoption PrintGCDetails
|
||||
vmoption PrintGCDetails true
|
||||
vmoption PrintGC
|
||||
vmoption PrintGC true
|
||||
|
||||
WIKI:
|
||||
https://arthas.aliyun.com/doc/vmoption
|
||||
@@ -71,25 +71,42 @@ Display, and update the vm diagnostic options.
|
||||
```
|
||||
|
||||
### Update individual option
|
||||
`vmoption PrintGC true`{{execute T2}}
|
||||
|
||||
```bash
|
||||
$ vmoption PrintGC true
|
||||
Successfully updated the vm option.
|
||||
NAME BEFORE-VALUE AFTER-VALUE
|
||||
------------------------------------
|
||||
PrintGC false true
|
||||
```
|
||||
|
||||
Then use the `vmtool` command to force GC, you can see the GC log printed in `Terminal 1`:
|
||||
|
||||
`vmtool --action forceGc`{{execute T2}}
|
||||
|
||||
```
|
||||
[GC (JvmtiEnv ForceGarbageCollection) 33752K->19564K(251392K), 0.0082960 secs]
|
||||
[Full GC (JvmtiEnv ForceGarbageCollection) 19564K->17091K(166912K), 0.0271085 secs]
|
||||
```
|
||||
|
||||
### Configure print GC details
|
||||
|
||||
`vmoption PrintGCDetails true`{{execute T2}}
|
||||
|
||||
```bash
|
||||
[arthas@56963]$ vmoption PrintGCDetails true
|
||||
$ vmoption PrintGCDetails true
|
||||
Successfully updated the vm option.
|
||||
PrintGCDetails=true
|
||||
NAME BEFORE-VALUE AFTER-VALUE
|
||||
-------------------------------------------
|
||||
PrintGCDetails false true
|
||||
```
|
||||
|
||||
Now,if we switch to the `Terminal` where arthas demo is running,and use `Ctrl+c` to exit,you will find it prints out Garbage Collection details:
|
||||
Then use the `vmtool` command to force GC, you can see the GC details printed in `Terminal 1`:
|
||||
|
||||
`vmtool --action forceGc`{{execute T2}}
|
||||
|
||||
```bash
|
||||
Heap
|
||||
def new generation total 10432K, used 5682K [0x00000000f4800000, 0x00000000f5350000, 0x00000000f8550000)
|
||||
eden space 9280K, 61% used [0x00000000f4800000, 0x00000000f4d8cad0, 0x00000000f5110000)
|
||||
from space 1152K, 0% used [0x00000000f5110000, 0x00000000f5110000, 0x00000000f5230000)
|
||||
to space 1152K, 0% used [0x00000000f5230000, 0x00000000f5230000, 0x00000000f5350000)
|
||||
tenured generation total 22992K, used 13795K [0x00000000f8550000, 0x00000000f9bc4000, 0x0000000100000000)
|
||||
the space 22992K, 59% used [0x00000000f8550000, 0x00000000f92c8cc8, 0x00000000f92c8e00, 0x00000000f9bc4000)
|
||||
Metaspace used 14926K, capacity 15128K, committed 15360K, reserved 1062912K
|
||||
class space used 1895K, capacity 1954K, committed 2048K, reserved 1048576K
|
||||
```
|
||||
[GC (JvmtiEnv ForceGarbageCollection) [PSYoungGen: 4395K->352K(76288K)] 21487K->17443K(166912K), 0.0013122 secs] [Times: user=0.01 sys=0.00, real=0.00 secs]
|
||||
[Full GC (JvmtiEnv ForceGarbageCollection) [PSYoungGen: 352K->0K(76288K)] [ParOldGen: 17091K->16076K(88064K)] 17443K->16076K(164352K), [Metaspace: 20651K->20651K(1069056K)], 0.0251548 secs] [Times: user=0.15 sys=0.01, real=0.02 secs]
|
||||
```
|
||||
Reference in New Issue
Block a user