网络的各指标计算方法(参考sar)

目前只计算一些简单的信息,主要分析/proc/net/dev文件和双工速度信息

/proc/net/dev文件信息如下:

Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo: 353771172504 2684040276    0    0    0     0          0         0 353771172504 2684040276    0    0    0     0       0          0

face:网络接口名

rx_bytes:接收数据的总字节数

rx_packets:接收数据包总数

rx_errors:接收错误的包总数

rx_dropped:接收丢弃的总包数(because of a lack of space in linux buffers)

rx_fifo_errors:接收的FIFO溢出错误数

rx_frame_errors:接收的数据包上发生的帧对齐错误数

rx_compressed:接收的压缩数据包数

multicast:接收的多播帧数

tx_bytes:发送数据的总字节数

tx_packets:发送数据总包数

tx_errors:发送错误的总包数

tx_dropped:发送丢弃的总包数

tx_fifo_errors:发送的FIFO溢出错误数

collisions:传输数据包时发生的冲突数 

tx_carrier_errors:传输数据包时发生的载波错误数量

tx_compressed:发送的压缩数据包数

双工状态可以从文件"/sys/class/net/*/duplex"中获取,其中“*”代表网络接口名,速度可以从文件"/sys/class/net/*/speed",其中“*”代表网络接口名。根据我对于我所使用的linux服务器的观察,好像只有处于运行状态的网络接口才能获取这两个信息,不处于运行状态的网络接口这两个文件内的信息好像没有意义。

执行“sar -n DEV 1”,基本的打印信息如下:

IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
eth1   25803.00  24701.00  18208.05  19104.01      0.00      0.00   4740.00     15.65

各个域的计算方法,都是通过两次读取文件/proc/net/dev的数据的差,除以两次读取的时间间隔

IFACE:对应上面的face,网络接口名

rxpck/s:每秒接收的包数,计算方法:两次读取的rx_packets的差,除以两次读取的时间间隔

txpck/s:每秒发送的包数,计算方法:两次读取的tx_packets的差,除以两次读取的时间间隔

rxkB/s:每秒发送的包数,计算方法:两次读取的rx_bytes的差,除以两次读取的时间间隔(注意单位)

txkB/s:两次读取的tx_bytes的差,除以两次读取的时间间隔(注意单位)

rxcmp/s:两次读取的rx_compressed的差,除以两次读取的时间间隔

txcmp/s:两次读取的tx_compressed的差,除以两次读取的时间间隔

rxmcst/s:两次读取的multicast的差,除以两次读取的时间间隔

%ifutil:网络带宽的利用率,这个与采用的全双工还是半双工有关,全双工的话只需要计算读和写中的比较大的一项就可以,不过要注意带宽使用的以位为单位的,所以要做相应的单位转化。用收和发中数量大的字节除以带宽就可以了。单双工的话需要将收和发的字节加起来,再除以带宽。

执行“sar -n EDEV 1”,基本的打印信息如下:

IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

IFACE:网络接口名

rxerr/s:每秒发送错误的总包数,计算方法:两次读取的rx_errors的差,除以两次读取的时间间隔

txerr/s:每秒接收错误的总包数,计算方法:两次读取的tx_errors的差,除以两次读取的时间间隔

coll/s:每秒发生的冲突数 ,计算方法:两次读取的collisions的差,除以两次读取的时间间隔

rxdrop/s:每秒接收丢弃的包数,计算方法:两次读取的rx_dropped的差,除以两次读取的时间间隔

txdrop/s:每秒发送丢弃的包数,计算方法:两次读取的tx_dropped的差,除以两次读取的时间间隔

txcarr/s:每秒发生的载波错误数量,计算方法:两次读取的tx_carrier_errors的差,除以两次读取的时间间隔

rxfram/s:每秒发生的帧对齐错误数,计算方法:两次读取的rx_frame_errors的差,除以两次读取的时间间隔

rxfifo/s:每秒接收的FIFO溢出错误数,计算方法:两次读取的rx_fifo_errors的差,除以两次读取的时间间隔

txfifo/s:每秒发送的FIFO溢出错误数,计算方法:两次读取的tx_fifo_errors的差,除以两次读取的时间间隔

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值