Skip to content

Commit 7f8d4bc

Browse files
committed
= improve java.md
1 parent b417c8d commit 7f8d4bc

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

bin/show-busy-java-threads

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ Example:
139139
140140
Output control:
141141
-p, --pid <java pid(s)> find out the highest cpu consumed threads from
142-
the specified java process. support pid list(eg: 42,99).
142+
the specified java process. support pid list(eg: 42,47).
143143
default from all java process.
144144
-c, --count <num> set the thread count to show, default is 5.
145145
set count 0 to show all threads.

docs/java.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727

2828
-------------------------------
2929

30-
关于`Java`排错与诊断,力荐️`Arthas` ❤️
30+
关于`Java`排错与诊断,力荐️`Arthas` ❤️
3131

32-
- [alibaba/arthas: Alibaba Java诊断利器 - github.com](https://github.com/alibaba/arthas)
33-
- `Arthas`用户文档 https://alibaba.github.io/arthas/
32+
- `Arthas`用户文档: https://arthas.aliyun.com/doc/quick-start.html
33+
- github repo: [alibaba/arthas: Alibaba Java诊断利器](https://github.com/alibaba/arthas)
3434

3535
`Arthas`功能异常(😜)强劲,且在阿里巴巴线上支持使用多年。我自己也常用,一定要看看用用!
3636

@@ -51,9 +51,9 @@
5151
----------------------
5252

5353
用于快速排查`Java``CPU`性能问题(`top us`值过高),自动查出运行的`Java`进程中消耗`CPU`多的线程,并打印出其线程栈,从而确定导致性能问题的方法调用。
54-
目前只支持`Linux`。原因是`Mac``Windows``ps`命令不支持列出进程的线程`id`,更多信息参见[#33](https://github.com/oldratlee/useful-scripts/issues/33),欢迎提供解法。
54+
目前只支持`Linux`。原因是`Mac``Windows``ps`命令不支持列出进程的线程`id`,更多信息参见 [#33](https://github.com/oldratlee/useful-scripts/issues/33),欢迎提供解法。
5555

56-
PS,如何操作可以参见[@bluedavy](http://weibo.com/bluedavy)[《分布式Java应用》](https://book.douban.com/subject/4848587/)的【5.1.1 `CPU`消耗分析】一节,说得很详细:
56+
PS,如何操作可以参见[`@bluedavy`](http://weibo.com/bluedavy)[《分布式Java应用》](https://book.douban.com/subject/4848587/)的【5.1.1 `CPU`消耗分析】一节,说得很详细:
5757

5858
1. `top`命令找出消耗`CPU`高的`Java`进程及其线程`id`
5959
1. 开启线程显示模式(`top -H`,或是打开`top`后按`H`
@@ -65,7 +65,8 @@ PS,如何操作可以参见[@bluedavy](http://weibo.com/bluedavy)的[《分布
6565
1.`jstack`输出中查找十六进制的线程`id`(可以用`vim`的查找功能`/0x1234`,或是`grep 0x1234 -A 20`
6666
1. 查看对应的线程栈,分析问题
6767

68-
查问题时,会要多次上面的操作以分析确定问题,这个过程**太繁琐太慢了**
68+
查问题时,会要多次上面的操作以分析确定问题,这个过程**太繁琐太慢了**
69+
期望整合上面的过程成一个脚本,这样一行命令就可以自动化地搞定。
6970

7071
### 用法
7172

@@ -74,10 +75,12 @@ show-busy-java-threads
7475
# 从所有运行的Java进程中找出最消耗CPU的线程(缺省5个),打印出其线程栈
7576

7677
# 缺省会自动从所有的Java进程中找出最消耗CPU的线程,这样用更方便
77-
# 当然你可以手动指定要分析的Java进程Id,以保证只会显示你关心的那个Java进程的信息
78+
# 当然你可以通过 -p 选项 手动指定要分析的Java进程Id,以保证只会显示你关心的那个Java进程的信息
7879
show-busy-java-threads -p <指定的Java进程Id>
80+
show-busy-java-threads -p 42
81+
show-busy-java-threads -p 42,47
7982

80-
show-busy-java-threads -c <要显示的线程栈数>
83+
show-busy-java-threads -c <要展示示的线程栈个数>
8184

8285
show-busy-java-threads <重复执行的间隔秒数> [<重复执行的次数>]
8386
# 多次执行;这2个参数的使用方式类似vmstat命令
@@ -97,14 +100,14 @@ sudo show-busy-java-threads
97100

98101
show-busy-java-threads -s <指定jstack命令的全路径>
99102
# 对于sudo方式的运行,JAVA_HOME环境变量不能传递给root,
100-
# 而root用户往往没有配置JAVA_HOME且不方便配置,
101-
# 显式指定jstack命令的路径就反而显得更方便了
103+
# 而root用户往往没有配置JAVA_HOME且不方便配置,不能找到jstack命令。
104+
# 这时显式指定jstack命令的路径就反而显得更方便了
102105

103-
# -m选项:执行jstack命令时加上-m选项,显示上Native的栈帧,一般应用排查不需要使用
106+
# -m 选项:执行jstack命令时加上 -m 选项,显示上Native的栈帧,一般应用排查不需要使用
104107
show-busy-java-threads -m
105-
# -F选项:执行jstack命令时加上 -F 选项(如果直接jstack无响应时,用于强制jstack),一般情况不需要使用
108+
# -F 选项:执行jstack命令时加上 -F 选项(如果直接jstack无响应时,用于强制jstack),一般情况不需要使用
106109
show-busy-java-threads -F
107-
# -l选项:执行jstack命令时加上 -l 选项,显示上更多相关锁的信息,一般情况不需要使用
110+
# -l 选项:执行jstack命令时加上 -l 选项,显示上更多相关锁的信息,一般情况不需要使用
108111
# 注意:和 -m -F 选项一起使用时,可能会大大增加jstack操作的耗时
109112
show-busy-java-threads -l
110113

@@ -121,7 +124,7 @@ Example:
121124

122125
Output control:
123126
-p, --pid <java pid(s)> find out the highest cpu consumed threads from
124-
the specified java process. support pid list(eg: 42,99).
127+
the specified java process. support pid list(eg: 42,47).
125128
default from all java process.
126129
-c, --count <num> set the thread count to show, default is 5.
127130
set count 0 to show all threads.

0 commit comments

Comments
 (0)