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