【linux命令讲解大全】113.网络接口和系统设备监测工具ifstat和iostat的使用

2024-03-02 13:56:59 浏览数 (2)

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。

代码语言:javascript复制
[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的详细情况:

代码语言:javascript复制
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百分比

0 人点赞