先明确几个概念:
1、系统负载System load :系统CPU繁忙程度的度量,即还有多少个进程等待CPU的调度
2、平均负载load average :一段时间内的平均负载,这个一段时间一般取1分钟、5分钟、15分钟
查看命令如下:
命令1: top
查看上图可以看出
当前时间 09:28:12
系统已运行的时间 180 days, 22:43
当前在线用户 1 user
1分钟的平均负载是 0,5分钟平均负载是0.01, 15分钟的平均负载是0.05
命令2: uptime
命令3: cat /proc/loadavg
除了前3个数字表示平均负载外,后面的1个分数,分母表示系统进程总数,分子表示正在运行的进程数;最后一个数字表示最近运行的进程ID
命令4: w
用来查看登录者的信息及他们的行为
Load则表示系统的繁忙程度
单核
Load<1:没有等待
Load==1:系统已无额外的资源跑更多的进程了
Load>1:进程都堵着等待资源
注:
需要警惕的
Load < 0.7时:系统很闲,要考虑多部署一些服务
0.7 < Load < 1时:系统状态不错
Load == 1时:系统马上要处理不多来了,赶紧找一下原因
Load > 5时:系统已经非常繁忙了
不同Load值说明的问题
1)1分钟Load>5,5分钟Load<1,15分钟Load<1
短期内繁忙,中长期空闲,初步判断是一个抖动或者是拥塞前兆
2)1分钟Load>5,5分钟Load>1,15分钟Load<1
短期内繁忙,中期内紧张,很可能是一个拥塞的开始
3)1分钟Load>5,5分钟Load>5,15分钟Load>5
短中长期都繁忙,系统正在拥塞
4)1分钟Load<1,5分钟Load>1,15分钟Load>5
短期内空闲,中长期繁忙,不用紧张,系统拥塞正在好转
查看cpu核心的命令
grep ‘model name’ /proc/cpuinfo | wc -l
1就是说明是1核心
CPU是1核,load<1是不会有问题的.
第一步 收到报警,说负载已经到了32.
这个时候马上到相关的服务器上查看,使用的是TOP命令
结果如下:
发现是python相关的应用在大量吃CPU
这个时候再使用
ps -ef | grep ‘python’
然后找到相应的pid,就能定位到是哪个程序造成的问题了。后面的事情就是对程序内部的问题进行分析了
也可以直接用
ps -ef | grep '9966’来查找到相应的程序
负载高的原因可能为:
CPU存在瓶颈
内存存在瓶颈
磁盘IO存在瓶颈
-
怀疑CPU存在瓶颈
使用sar -u命令查看; -
怀疑内存存在瓶颈
使用sar -r命令查看; -
怀疑磁盘IO存在瓶颈
使用sar -b命令查看;
ps命令将某个进程显
示出来
grep命令是查找
命令参数:
a 显示所有进程
-a 显示同一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
-e 等于“-A”
e 显示环境变量
f 显示程序间的关系
-H 显示树状结构
r 显示当前终端的进程
T 显示当前终端的所有程序
u 指定用户的所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-C<命令> 列出指定命令的状况
–lines<行数> 每页显示的行数
–width<字符数> 每页显示的字符数
–help 显示帮助信息
–version 显示版本显示