问题排查
# 01.CPU过高排查
# 1.1 JAVA项目
# 1、top确定进程
[root@linux-node1 /]# top
top - 03:24:29 # 表示当前时间
up 4 days, 22:56, # 系统已经运行时间
2 users, # 当前登录用户数
load average: 0.01, 0.03, 0.05 # 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
Tasks: 123 total(进程总数), 2 running(正在运行进程数), 121 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0
us, 0.0 # 用户空间占用CPU百分比
sy, 0.0 # 内核空间占用CPU百分比
ni,100.0 # 用户进程空间内改变过优先级的进程占用CPU百分比
id, 0.0 # 空闲CPU百分比
wa, 0.0 # 等待输入输出的CPU时间百分比
hi, 0.0 # 硬中断(Hardware IRQ)占用CPU的百分比
si, 0.0 # 软中断(Software Interrupts)占用CPU的百分比
st
KiB Mem : 1863224 total(物理内存总量), 219592 free, 498732 used, 1144900 buff/cache
KiB Swap: 2097148 total(交换区总量), 2094580 free, 2568 used. 1043628 avail Mem
进程id 进程所有者 优先级
PID USER PR RES SHR S %CPU %MEM TIME+ COMMAND
6583 root 20 5156 3796 S 0.3 0.3 10:54.90 vmtoolsd
7284 root 20 2252 1580 R 0.3 0.1 0:00.03 top
1 root 20 3844 2436 S 0.0 0.2 2:04.28 systemd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 2、确定进程中的线程
[root@VM-8-14-centos ~]# top -Hp 22041
top - 10:45:48 up 52 days, 17:22, 1 user, load average: 0.00, 0.01, 0.05
Threads: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.5 us, 0.3 sy, 0.0 ni, 99.0 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2046680 total, 136376 free, 200348 used, 1709956 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1648976 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22041 root 20 0 39308 1116 140 S 0.0 0.1 0:00.00 nginx
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 3、线程ID转16进制
[root@VM-8-14-centos ~]# printf "%x\n" 22041
5619
1
2
2
# 4、定位具体代码行
- 查找 进程 22041中 线程号为 5619的线程具体 代码调用栈信息
[root@VM-8-14-centos ~]# jstack 22041 | grep "5619" -A 30
# grep "5619" -A 30 显示下文30条相关语句
1
2
2
上次更新: 2024/3/13 15:35:10