首先使用top命令查看cpu使用情况
属性释义:
PID - 进程标示号
USER - 进程所有者
PR - 进程优先级
NI - 进程优先级别数值
VIRT - 进程占用的虚拟内存值
RES - 进程占用的物理内存值
SHR - 进程使用的共享内存值
S - 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死
%CPU - 进程占用的CPU使用率
%MEM - 进程占用的物理内存百分比
TIME+ - 进程启动后占用的总的CPU时间
Command - 进程启动的启动命令名称
通过%cpu列就能看出cpu占用情况,现在找到罪魁祸首后就该杀的杀该关的关
关闭进程
执行top命令出现任务列表后,如果想关闭进程,直接按键盘上的K键
此时会让你输入想要关闭进程的pid(任务列表第一列,如果不输入的话默认关闭排在第一的进程)
比如你想关闭上面图片中的“51466”进程,输入54166后按回车
切记!
切记!
切记!
这里输入数字时注意不要按小键盘,要按键盘字母区上面的那排数字键;
比如我们要关闭pid为2的进程,输入2后按回车,会出现以下提示,此时再按回车就ok
注意
如果执行top命令后,发现没有cpu占用率较高的进程,这时候你就得看看load average
这里会有三个数值
load average:0.98,1.37,1.48
释义:
第一位表示最近1分钟平均负载
第二位表示最近5分钟平均负载
第三位表示最近15分钟平均负载
数值分析
我们一般直接看第三位,如果不正常再去看前两位,看下有没有下降趋势,这个值越大说明当前阻塞的任务越多
对于单核处理器来讲,数值超过1就是不正常的
如果是多核处理器,一般来说数值数值也不会超过5,当然这个跟自己服务器cpu核心数有关,你可以通过lscpu查看自己的核心数(cpus列)
我的服务器是56核,上面图中能看到我的load average:0.98,1.37,1.48,这个值是5秒刷新一次,我观察了下,不会超过2,基本上处于0.8-1.8范围内波动。
cpu高负载是由于当前等待执行的任务过多,一般就是因为某些任务依赖的服务挂了或者cpu资源不足,只能通过恢复阻塞任务依赖的服务,或者直接重启来解决。。。