java故障排查

CPU 满载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 找到占用 cpu 最高的进程的 PID
$ top

# 显示某个 PID 进程的线程列表,找到 CPU 最高的线程的 TID
## 方法1
$ ps -mp <pid> -o THREAD,tid,time
## 方法2
top -Hp pid

# 将线程的 TID 转换为16进制格式
printf "0x%x\n" <tid>

# 打印线程的堆栈信息
$ jstack pid |grep <tid> -A 30

## 语法
$ jstack pid |grep 'threadPid' -C5 --color
## 打印进程堆栈 并通过线程id,过滤得到线程堆栈信息。
$ jstack 13525 |grep '0x3be4' -C5 --color
## 打印后面100行分析问题
$ jstack -l 13525 | grep '0x3be4' -A 100
坚持原创技术分享,您的支持将鼓励我继续创作!
0%