linux系统cpu占用过高故障排查

linux系统cpu占用过高故障排查首先使用top命令查看cpu使用情况

linux系统cpu占用过高故障排查

属性释义


PID - 进程标示号

USER - 进程所有者

PR - 进程优先级

NI - 进程优先级别数值

VIRT - 进程占用的虚拟内存值

RES - 进程占用的物理内存值

SHR - 进程使用的共享内存值

S - 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死

%CPU - 进程占用的CPU使用率

%MEM - 进程占用的物理内存百分比

TIME+ - 进程启动后占用的总的CPU时间

Command - 进程启动的启动命令名称


通过%cpu列就能看出cpu占用情况,现在找到罪魁祸首后就该杀的杀该关的关


关闭进程

执行top命令出现任务列表后,如果想关闭进程,直接按键盘上的K键

linux系统cpu占用过高故障排查

此时会让你输入想要关闭进程的pid(任务列表第一列,如果不输入的话默认关闭排在第一的进程)


比如你想关闭上面图片中的“51466”进程,输入54166后按回车


切记!

切记!

切记!


这里输入数字时注意不要按小键盘,要按键盘字母区上面的那排数字键;


比如我们要关闭pid为2的进程,输入2后按回车,会出现以下提示,此时再按回车就ok

linux系统cpu占用过高故障排查

注意

如果执行top命令后,发现没有cpu占用率较高的进程,这时候你就得看看load average

linux系统cpu占用过高故障排查

这里会有三个数值


load average:0.98,1.37,1.48


释义:


第一位表示最近1分钟平均负载

第二位表示最近5分钟平均负载

第三位表示最近15分钟平均负载


数值分析


我们一般直接看第三位,如果不正常再去看前两位,看下有没有下降趋势,这个值越大说明当前阻塞的任务越多


对于单核处理器来讲,数值超过1就是不正常的


如果是多核处理器,一般来说数值数值也不会超过5,当然这个跟自己服务器cpu核心数有关,你可以通过lscpu查看自己的核心数(cpus列)

linux系统cpu占用过高故障排查

我的服务器是56核,上面图中能看到我的load average:0.98,1.37,1.48,这个值是5秒刷新一次,我观察了下,不会超过2,基本上处于0.8-1.8范围内波动。


cpu高负载是由于当前等待执行的任务过多,一般就是因为某些任务依赖的服务挂了或者cpu资源不足,只能通过恢复阻塞任务依赖的服务,或者直接重启来解决。。。




上一篇:如何更新 Linux 内核来提升系统性能


下一篇:Linux系统性能指标