查看一个服务器的负载情况一般是从内存,cpu的使用量来看的,还有就是磁盘io和网络io,下面会分别对其进行监控(环境sentos6.7)
内存负载情况:
free这个命令可以查看内存的使用情况可剩余情况:具体使用如图
cpu的负载情况:
使用top来动态的显示,直接在命令行中输入 top 就能显示如下图所示:
- load average是显示的是cpu的负载情况,三个数分别是1分钟,5分钟,15分钟的平均负载情况,对于单核来说cpu负载大于1的时候说明负载已经严重了,多核的时候是大于n(n为核数)。这里有点争议,应为单核的时候大于1并不意味着cpu就是已经用尽了,所以这里有的人认为负载可以达到2n的时候才认为负载比较严重。
- Tasks行展示了目前的进程总数及所处状态,要注意zombie,表示僵尸进程,不为0则表示有进程出现问题。
- Cpu(s)行展示了当前CPU的状态,us表示用户进程占用CPU比例,sy表示内核进程占用CPU比例,id表示空闲CPU百分比,wa表示IO等待所占用的CPU时间的百分比。wa占用超过30%则表示IO压力很大。在top下按1会显示每个cpu的负载情况,注意cpu那行的变化。
- Mem行展示了当前内存的状态,total是总的内存大小,userd是已使用的,free是剩余的,buffers是目录缓存。
- Swap行同Mem行,cached表示缓存,用户已打开的文件。如果Swap的used很高,则表示系统内存不足。
磁盘io的负载情况使用的是iostat:
输入iostat -x 1 10命令,表示开始监控输入输出状态,-x表示显示所有参数信息,1表示每隔1秒监控一次,10表示共监控10次
网络io的负载情况ifstat:
ifstat sentos没有自带,需要下载安装
#下载
yum install -y wget
wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz
#解压安装 需要依赖gcc,没有了自己去下载
tar -zxvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure #默认会安装到/usr/local/bin/目录中
make && make install
使用如下(每秒打印出当时的上行和下行情况):
参数说明:
-l 监测环路网络接口(lo)。缺省情况下,ifstat监测活动的所有非环路网络接口。经使用发现,加上-l参数能监测所有的网络接口的信息,而不是只监测 lo的接口信息,也就是说,加上-l参数比不加-l参数会多一个lo接口的状态信息。
-a 监测能检测到的所有网络接口的状态信息。使用发现,比加上-l参数还多一个plip0的接口信息,搜索一下发现这是并口(网络设备中有一 个叫PLIP (Parallel Line Internet Protocol). 它提供了并口...)
-z 隐藏流量是无的接口,例如那些接口虽然启动了但是未用的
-i 指定要监测的接口,后面跟网络接口名
-s 等于加-d snmp:[comm@][#]host[/nn]] 参数,通过SNMP查询一个远程主机
-h 显示简短的帮助信息
-n 关闭显示周期性出现的头部信息(也就是说,不加-n参数运行ifstat时最顶部会出现网络接口的名称,当一屏显示不下时,会再一次出现接口的名称,提示我们显示的流量信息具体是哪个网络接口的。加上-n参数把周期性的显示接口名称关闭,只显示一次)
-t 在每一行的开头加一个时间 戳(能告诉我们具体的时间)
-T 报告所有监测接口的全部带宽(最后一列有个total,显示所有的接口的in流量和所有接口的out流量,简单的把所有接口的in流量相加,out流量相 加)
-w 用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽
-W 如果内容比终端窗口的宽度还要宽就自动换行
-S 在同一行保持状态更新(不滚动不换行)注:如果不喜欢屏幕滚动则此项非常方便,与bmon的显示方式类似
-b 用kbits/s显示带宽而不是kbytes/s
-q 安静模式,警告信息不出现
-v 显示版本信息
-d 指定一个驱动来收集状态信息