找到最耗CPU的进程pid
top
[root@localhost ~]# top
top - 16:17:15 up 135 days, 21 min, 2 users, load average: 0.57, 0.35, 0.31
Tasks: 195 total, 1 running, 194 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.7 us, 1.5 sy, 0.0 ni, 95.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8008208 total, 159788 free, 6447100 used, 1401320 buff/cache
KiB Swap: 5242876 total, 3176956 free, 2065920 used. 1242648 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4209 root 20 0 6597640 613680 7252 S 17.5 7.7 37698:42 java
31061 root 20 0 7911860 304228 6140 S 1.0 3.8 3596:52 java
31649 root 20 0 161536 6236 4472 S 1.0 0.1 1:44.97 sshd
27888 root 20 0 8067700 666940 7924 S 0.7 8.3 172:58.41 java
31791 root 20 0 163160 3328 1584 S 0.7 0.0 0:48.64 top
9 root 20 0 0 0 0 S 0.3 0.0 49:07.43 rcu_sched
18 root rt 0 0 0 0 S 0.3 0.0 0:25.01 migration/2
738 root 16 -4 55532 688 564 S 0.3 0.0 2:53.40 auditd
4450 root 20 0 7994632 957560 7080 S 0.3 12.0 962:33.79 java
找到最耗CPU的线程tid
top -Hp 4209
[root@localhost ~]# top -Hp 4209
top - 16:17:48 up 135 days, 22 min, 2 users, load average: 0.37, 0.33, 0.30
Threads: 517 total, 1 running, 516 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.8 us, 3.2 sy, 0.0 ni, 89.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8008208 total, 160488 free, 6445808 used, 1401912 buff/cache
KiB Swap: 5242876 total, 3176956 free, 2065920 used. 1243720 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4255 root 20 0 6597640 613680 7252 R 34.1 7.7 34102:25 VM Thread
4750 root 20 0 6597640 613680 7252 S 0.3 7.7 104:43.30 com.alibaba.nac
4785 root 20 0 6597640 613680 7252 S 0.3 7.7 11:50.82 nacos.naming.mo
4919 root 20 0 6597640 613680 7252 S 0.3 7.7 51:00.99 com.alibaba.nac
4949 root 20 0 6597640 613680 7252 S 0.3 7.7 157:11.52 grpc-default-wo
8063 root 20 0 6597640 613680 7252 S 0.3 7.7 16:28.91 nacos-http-asyn
将线程pid转化为16进制
将第二步查询到高占用的pid转为16进制
printf '%x\n' 4255
[root@localhost ~]# printf '%x\n' 4255
109f
查询线程堆信息
# 匹配到的行的后面显示之后的 10 行内容
jstack 4209 | grep -A 10 109f 或者
# 匹配到的行的后面所有信息
jstack 4209 | grep 109f