线上环境CPU标高排查

2019-10-16  本文已影响0人  若水_28a8

可按照如下步骤进行排查

1、执行top命令,找到cpu占用比较高的进程

2、打印该进程的堆栈信息(jstack),保存到文件中备用

     jstack 进程ID > high_cpu.txt

3、找到进程中CPU占用比较高的线程,将线程ID转换为16进制

      top -p 进程ID -H

4、从2中的堆栈信息文件中,找出该线程ID(16进制)对应的堆栈信息

top命令:

top命令截图

第一行:基本信息

top - 20:50:42 up 190 days, 10:48, 4 users, load average: 0.24, 0.32, 0.30

0:50:42 up 190 days, 10:48:当前时间和系统运行时间

4 users:当前登录用户数

load average: 0.24, 0.32, 0.30:系统负载,三个数字分别表示1分钟、5分钟、15分钟前到现在的平均值

第二行:任务信息

total:进程总数

running:正在运行的进程数

sleeping:睡眠状态的进程数

stopped:停止的进程数

zmobie:僵尸进程数

第三行:CPU使用情况

us:User Time,CPU执行用户进程百分比,包括Nice Time

sy:System Time,CPU在内核运行百分比,包括IRQ和SoftIRQ

ni:Nice Time,调整进程优先级所用百分比

id:idle Time,系统空闲百分比

wa:Waiting Time,CPU等待I/O完成所有百分比

hi:Hard IRQ Time,硬中断占用的CPU时间百分比

si:Soft IRQ Time,软中断占用CPU的时间百分比

st:Steal Time,虚拟服务占用

第四行:物理内存使用情况

total:总物理内存

free:空闲的物理内存

used:已使用的内存

buff/cache:缓冲区和缓存占用内存的总量

第五行:交换区使用情况

total:交换区的总量

free:未使用的量

used:已使用的量

avail Mem:可用的内存量

第六行:进程详细信息

PID:进程ID

USER:进程所有者的用户名

PR:优先级

NI:nice值

VIRT:进程使用的虚拟内存总量,单位KB

RES:进程使用的,未被换出的物理内存大小,单位KB

SHR:共享内存大小,单位KB

S:进程状态 (D:不可中断的睡眠状态,R:运行,S:睡眠,T:跟踪/停止,Z:僵尸进程)

%CPU:上次更新到现在的CPU时间占比

%MEM:进程使用的物理内存百分比

TIME+:进程使用的CPU时间统计,单位1/100秒

CMMAND:命令名/命令行

上一篇下一篇

猜你喜欢

热点阅读