ifstat
统计网络接口流量状态
补充说明:
ifstat
命令就像iostat/vmstat
描述其它的系统状况一样,是一个统计网络接口活动状态的工具。ifstat
工具系统中并不默认安装,需要自己下载源码包,重新编译安装,使用过程相对比较简单。
下载: http://gael.roualland.free.fr/ifstat/(官网)
代码语言:javascript复制wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz
编译安装:
代码语言:javascript复制tar -zxvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure
make
make install # 默认会安装到/usr/local/bin/目录中
注释:执行which ifstat
输出/usr/local/bin/ifstat
选项:
-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
指定一个驱动来收集状态信息
实例:
默认使用:
代码语言:javascript复制[root@localhost ifstat-1.1] #ifstat
eth0 eth1
KB/s in KB/s out KB/s in KB/s out
0.07 0.20 0.00 0.00
0.07 0.15 0.58 0.00
默认ifstat
不监控回环接口,显示的流量单位是KB。
[root@localhost ifstat-1.1]# ifstat -tT
time eth0 eth1 eth2 eth3 Total
HH:MM:ss KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
16:53:04 0.84 0.62 1256.27 1173.05 0.12 0.18 0.00 0.00 1257.22 1173.86
16:53:05 0.57 0.40 0.57 0.76 0.00 0.00 0.00 0.00 1.14 1.17
16:53:06 1.58 0.71 0.42 0.78 0.00 0.00 0.00 0.00 2.01 1.48
16:53:07 0.57 0.40 1.91 2.61 0.00 0.00 0.00 0.00 2.48 3.01
16:53:08 0.73 0.40 924.02 1248.91 0.00 0.00 0.00 0.00 924.76 1249.31
监控所有网络接口:
代码语言:javascript复制[root@localhost ifstat-1.1] # ifstat -a
lo eth0 eth1
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
0.00 0.00 0.28 0.58 0.06 0.06
0.00 0.00 1.41 1.13 0.00 0.00
0.61 0.61 0.26 0.23 0.00 0.00
iostat
监视系统输入输出设备和CPU的使用情况
补充说明:
iostat
命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat
一样,iostat
也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
语法:
iostat
(选项)(参数)
选项:
-c
:仅显示CPU使用情况;-d
:仅显示设备利用率;-k
:显示状态以千字节每秒为单位,而不使用块每秒;-m
:显示状态以兆字节每秒为单位;-p
:仅显示块设备和所有被使用的其他分区的状态;-t
:显示每个报告产生时的时间;-V
:显示版号并退出;-x
:显示扩展状态。
参数:
- 间隔时间:每次报告的间隔时间(秒);
- 次数:显示报告的次数。
实例:
用iostat -x /dev/sda1
来观看磁盘I/O的详细情况:
iostat -x /dev/sda1
Linux 2.6.18-164.el5xen (localhost.localdomain)
2010年03月26日
avg-cpu: %user %nice %system %iowait
%steal %idle
0.11 0.02 0.18 0.35
0.03 99.31
Device: tps Blk_read/s Blk_wrtn/s
Blk_read Blk_wrtn
sda1 0.02 0.08
0.00 2014 4
详细说明:
- 第二行是系统信息和监测时间;
- 第三行和第四行显示CPU使用情况(具体内容和
mpstat
命令相同)。
这里主要关注后面I/O输出的信息,如下所示:
标示 | 说明 |
---|---|
Device | 监测设备名称 |
rrqm/s | 每秒需要读取需求的数量 |
wrqm/s | 每秒需要写入需求的数量 |
r/s | 每秒实际读取需求的数量 |
w/s | 每秒实际写入需求的数量 |
rsec/s | 每秒读取区段的数量 |
wsec/s | 每秒写入区段的数量 |
rkB/s | 每秒实际读取的大小,单位为KB |
wkB/s | 每秒实际写入的大小,单位为KB |
avgrq-sz | 需求的平均大小区段 |
avgqu-sz | 需求的平均队列长度 |
await | 等待I/O平均的时间(毫秒) |
svctm | I/O需求完成的平均时间 |
%util | 被I/O需求消耗的CPU百分比 |