我试图在我的路由器上使用来自SNMP的数据来描述特定接口的networking使用情况。 我知道ifInOctets / ifOutOctets只有32位,会溢出高速,并使我的graphics看起来愚蠢,但它看起来像由ifInOctets / ifOutOctets和ifHCInOctets / ifHCOutOctets返回的值不总是相同的差异。 我已经使用snmpwalk | grep InOctetstesting了几次 snmpwalk | grep InOctets并减去值。 有时候,我发现32位计数器的变化比64位版本的变化要小得多(超过50%),有时候我会发现,64位计数器显示的delta变化较小。
我是否错过了应该读取64位计数器的方式,或者在数据更新方面存在差异? 32位数字与/ proc / net / dev中的内容相匹配,所以我倾向于相信他们,但是当速度太高时,封装问题使得它们无法使用:
下面是几个例子,每个snmpwalk运行大约10秒钟:
$ snmpwalk -c public -v2c 192.168.1.1 | grep -i InOctets.2 IF-MIB::ifInOctets.2 = Counter32: 2291487255 IF-MIB::ifHCInOctets.2 = Counter64: 2901400127083 $ snmpwalk -c public -v2c 192.168.1.1 | grep -i InOctets.2 IF-MIB::ifInOctets.2 = Counter32: 2297202283 IF-MIB::ifHCInOctets.2 = Counter64: 2901400298056
32位更改:5715028
64位变化:170973
$ snmpwalk -c public -v2c 192.168.1.1 | grep -i InOctets.2 IF-MIB::ifInOctets.2 = Counter32: 2297528566 IF-MIB::ifHCInOctets.2 = Counter64: 2901400453366
32位更改:326283
64位更改:155310