一次cpu标高问题查找

来源:http://bbs.csdn.net/topics/392177206

简单总结步骤:
1、通过ps ux 排查哪些进程cpu占用率高
2、查出最耗CPU线程 top -Hp pid
2、通过线程ID转换16进制,printf “%x\n” 21742
4、追踪线程内部,查看load过高原因。通过命令:jstack 25245 >>/usr/2文件,将线程堆里面的信息全部保存下来
5、通过转换的16进制就可以去“2文件”里面查找对应的线程
6、jstack 21711 | grep 54ee
7、通过线程ID找出日志

找出pid(进程ID) top命令

在linux环境下,可以通过top命令查看各个进程的cpu使用情况,默认按cpu使用率排序

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10378 root 20 0 7694964 1.169g 11668 S 0.7 30.3 0:58.37 java
10120 root 20 0 0 0 0 S 0.3 0.0 0:01.11 kworker/u4:1
10521 root 20 0 24824 1536 1112 R 0.3 0.0 0:00.05 top

通过进程id看线程情况
top -Hp 10378 可以查看该进程下各个线程的cpu使用情况,有线程的pid

10412 root 20 0 7694964 1.169g 11668 S 0.3 30.3 0:00.08 java
10378 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.00 java
10379 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.86 java
10380 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.35 java
10381 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.34 java
10382 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.36 java
10383 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.05 java
10384 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.05 java
10385 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.00 java
10386 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:13.93 java
10387 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:14.65 java
10388 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.00 java
10389 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.76 java
10390 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.00 java
10395 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.53 java
10396 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.01 java
10397 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.00 java
10398 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.15 java
10399 root 20 0 7694964 1.169g 11668 S 0.0 30.3 0:00.08 java

通过线程ID转换16进制,printf “%x\n” 21742

追踪线程内部,查看load过高原因。通过命令:jstack 25245 >>/usr/jstack.out文件,将线程堆里面的信息全部保存下来

通过转换的16进制就可以去“2文件”里面查找对应的线程

jstack 21711 | grep 54ee

通过线程ID找出日志

===================
查看jvm内存状态
jstat -gcutil pid 1000 20
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 99.99 82.51 53.11 2409 1.205 10117 7250.393 7251.598
0.00 0.00 83.42 82.55 53.10 2409 1.205 10118 7252.650 7253.855
0.00 0.00 56.06 82.46 53.10 2410 1.205 10120 7254.467 7255.672
0.00 0.00 32.11 82.55 53.10 2411 1.205 10121 7256.673 7257.877
0.00 0.00 99.99 82.55 53.10 2412 1.205 10123 7257.026 7258.231
0.00 0.00 76.00 82.50 53.10 2412 1.205 10124 7259.241 7260.446
参数含义:
S0:Heap上的 Survivor space 0 段已使用空间的百分比
S1:Heap上的 Survivor space 1 段已使用空间的百分比
E: Heap上的 Eden space 段已使用空间的百分比
O: Heap上的 Old space 段已使用空间的百分比
P: Perm space 已使用空间的百分比
YGC:从程序启动到采样时发生Young GC的次数
YGCT:Young GC所用的时间(单位秒)
FGC:从程序启动到采样时发生Full GC的次数
FGCT:Full GC所用的时间(单位秒)
GCT:用于垃圾回收的总时间(单位秒)

猜你喜欢

转载自blog.csdn.net/u012903926/article/details/78123498