Chinaunix

标题: 端口即时速率统计的问题 [打印本页]

作者: kkboy_dyc    时间: 2012-03-02 09:05
标题: 端口即时速率统计的问题
通过 snmpget 获取了 IFInOctets counter32 的数据后,比较迷糊如何计算该端口的即时速率(Gbps)。

现在有点不明白的是,IFInOctets 的值 是一个计数器的累加形式。最大值是 2的32次方。

如果我每20秒采样一次,每300秒统计一次,应该用什么样的公式来计算即时速率呢?(Gbps)

我用3秒“采样”两次并统计,而且在不跨越最大值的前提下使用公式:

(采样2 - 采样1)*8/1024/1024/1024/3 = XXX / Gbps 得到的数据基本和 Cacti 计算值接近,但是第二次“采样”一旦跨越最大值 2的32次方,就完蛋了。

请教完整的公式应该如何计算




作者: ssffzz1    时间: 2012-03-02 09:24
你无法统计真正的即时速率,只能采集一个单位时间内的平均值。你可以提高采样频率来提高这个平均值的计算精度。

超过2^32是有算法可以避免的。
作者: kkboy_dyc    时间: 2012-03-02 09:43
回复 2# ssffzz1


貌似是有一个公式,查了查也没查到,自己推导了一下也都不对,求公式

   
作者: ssffzz1    时间: 2012-03-02 10:27
2^32=4294967296 。当超过这个数字后就会从0开始。

譬如当前计数已经到了4294967000 ,然后又累加上500 那么计数就变成了4294967000+500-4294967296=204 。  

反火来,如果上次计数是4294967000,然后下次读书变成了204的话,那么实质的数字应该是429496296+204 。

不知道和你说明白木有啊。
作者: kkboy_dyc    时间: 2012-03-02 11:58
回复 4# ssffzz1

明白了

   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2