网卡流量统计实用工具nicstat

nicstat安装

# wget -c http://nchc.dl.sourceforge.net/project/nicstat/nicstat-1.92.tar.gz
# tar zxvf nicstat-1.92.tar.gz
# cd nicstat-1.92
# cp Makefile.Linux Makefile
# uname -m
x86_64
# diff Makefile Makefile.Linux  ## 如果不是64位机器则不需要修改Makefile
17c17
< CFLAGS =	$(COPT)
---
> CFLAGS =	$(COPT) -m32
25c25
< CPUTYPE = x86_64
---
> CPUTYPE =	i386
# make && make install

nicstat使用

在解压包目录nicstat-1.92内,有个nicstat.sh脚本.

查看网卡速度(-l):

[root@centos192 nicstat-1.92]# ./nicstat.sh -l
Int      Loopback   Mbit/s Duplex State
lo            Yes        -   unkn    up
eth0           No     1000   full    up

间隔3秒,查看2次结果(留意%Util和Sat):

[root@centos192 nicstat-1.92]# ./nicstat 3 2
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
06:19:46       lo    0.72    0.72    2.15    2.15   341.2   341.2  0.00   0.00
06:19:46     eth0    0.89    0.15    1.37    0.92   660.4   163.6  0.00   0.00
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
06:19:49       lo    0.00    0.00    0.00    0.00    0.00    0.00  0.00   0.00
06:19:49     eth0    0.02    0.12    0.33    0.33   66.00   354.0  0.00   0.00
  • Time列:表示当前采样的响应时间.
  • lo and eth0 : 网卡名称.
  • rKB/s : 每秒接收到千字节数.
  • wKB/s : 每秒写的千字节数.
  • rPk/s : 每秒接收到的数据包数目.
  • wPk/s : 每秒写的数据包数目.
  • rAvs : 接收到的数据包平均大小.
  • wAvs : 传输的数据包平均大小.
  • %Util : 网卡利用率(百分比).
  • Sat : 网卡每秒的错误数.网卡是否接近饱满的一个指标.尝试去诊断网络问题的时候,推荐使用-x选项去查看更多的统计信息.

查看扩展信息(-x 和 -s):

[root@centos192 nicstat-1.92]# ./nicstat 3 2 -x
06:33:57      RdKB    WrKB   RdPkt   WrPkt   IErr  OErr  Coll  NoCP Defer  %Util
lo            0.69    0.69    2.08    2.08   0.00  0.00  0.00  0.00  0.00   0.00
eth0          0.86    0.14    1.33    0.89   0.00  0.00  0.00  0.00  0.00   0.00
06:34:00      RdKB    WrKB   RdPkt   WrPkt   IErr  OErr  Coll  NoCP Defer  %Util
lo            0.00    0.00    0.00    0.00   0.00  0.00  0.00  0.00  0.00   0.00
eth0          0.02    0.12    0.33    0.33   0.00  0.00  0.00  0.00  0.00   0.00
-
[root@centos192 nicstat-1.92]# ./nicstat.sh -s
    Time      Int          rKB/s          wKB/s
06:37:48       lo          0.685          0.685
06:37:48     eth0          0.848          0.140

查看tcp相关信息(-t):

[root@centos192 nicstat-1.92]# ./nicstat.sh -t
05:15:05    InKB   OutKB   InSeg  OutSeg Reset  AttF %ReTX InConn OutCon Drops
TCP         0.00    0.00    4.01    3.50  0.00  0.01 0.000   0.05   0.09  0.0
  • InKB : 表示每秒接收到的千字节.
  • OutKB : 表示每秒传输的千字节.
  • InSeg : 表示每秒接收到的TCP数据段(TCP Segments).
  • OutSeg : 表示每秒传输的TCP数据段(TCP Segments).
  • Reset : 表示TCP连接从ESTABLISHED或CLOSE-WAIT状态直接转变为CLOSED状态的次数.
  • AttF : 表示TCP连接从SYN-SENT或SYN-RCVD状态直接转变为CLOSED状态的次数,再加上TCP连接从SYN-RCVD状态直接转变为LISTEN状态的次数
  • %ReTX : 表示TCP数据段(TCP Segments)重传的百分比.即传输的TCP数据段包含有一个或多个之前传输的八位字节.
  • InConn : 表示TCP连接从LISTEN状态直接转变为SYN-RCVD状态的次数.
  • OutCon : 表示TCP连接从CLOSED状态直接转变为SYN-SENT状态的次数.
  • Drops : 表示从完成连接(completed connection)的队列和未完成连接(incomplete connection)的队列中丢弃的连接次数.

查看udp相关信息(-u):

[root@centos192 nicstat-1.92]# ./nicstat.sh -u
06:39:42                    InDG   OutDG     InErr  OutErr
UDP                         0.01    0.01      0.00    0.00
  • InDG : 每秒接收到的UDP数据报(UDP Datagrams)
  • OutDG : 每秒传输的UDP数据报(UDP Datagrams)
  • InErr : 接收到的因包含错误而不能被处理的数据包
  • OutErr :因错误而不能成功传输的数据包.

默认以KB为单位,现在以M单位查看:

[root@centos192 nicstat-1.92]# ./nicstat.sh -M
    Time      Int   rMbps   wMbps   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
05:16:55       lo    0.01    0.01    2.55    2.55   341.2   341.2  0.00   0.00
05:16:55     eth0    0.01    0.00    1.61    1.08   667.3   163.7  0.00   0.00

其它用法:

[root@centos192 nicstat-1.92]# ./nicstat.sh  -x -t -u
06:49:25    InKB   OutKB   InSeg  OutSeg Reset  AttF %ReTX InConn OutCon Drops
TCP         0.00    0.00    3.16    2.74  0.00  0.01 0.000   0.04   0.07  0.00
06:49:25                    InDG   OutDG     InErr  OutErr
UDP                         0.01    0.01      0.00    0.00
06:49:25      RdKB    WrKB   RdPkt   WrPkt   IErr  OErr  Coll  NoCP Defer  %Util
lo            0.67    0.67    2.00    2.00   0.00  0.00  0.00  0.00  0.00   0.00
eth0          0.83    0.14    1.29    0.86   0.00  0.00  0.00  0.00  0.00   0.00

-

[root@centos192 nicstat-1.92]# ./nicstat.sh -a
06:50:43    InKB   OutKB   InSeg  OutSeg Reset  AttF %ReTX InConn OutCon Drops
TCP         0.00    0.00    3.15    2.74  0.00  0.01 0.000   0.04   0.07  0.00
06:50:43                    InDG   OutDG     InErr  OutErr
UDP                         0.01    0.01      0.00    0.00
06:50:43      RdKB    WrKB   RdPkt   WrPkt   IErr  OErr  Coll  NoCP Defer  %Util
lo            0.66    0.66    1.99    1.99   0.00  0.00  0.00  0.00  0.00   0.00
eth0          0.82    0.14    1.28    0.86   0.00  0.00  0.00  0.00  0.00   0.00

使用”-a”与使用”-x -t -u”相当.

原文发布时间为:2013-07-05

本文来自云栖社区合作伙伴“Linux中国”

上一篇:C#数组定义和初始化


下一篇:Gor —— Go 开发的 HTTP 流量复制工具