一次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:用于垃圾回收的总时间(单位秒)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值