SNMP Gauge32和Counter32的定义区别

16

有人能给我指一下 Gauge32 和 Counter32 的好定义吗? 我知道 Counter32 可以循环计数,但 Gauge32 不能。

我试图理解它们的语义。例如,我听说你应该取两个 Counter32 的读数之差才能得到值/秒。对于 Gauge32 值是否存在类似的方法呢?

感谢任何见解。

2个回答

34

最佳定义(即“该”定义)在RFC的定义它们的部分中: RFC 2578

正如RFC所说,Counter32没有定义的初始值,因此单个读取Counter32没有信息内容。这就是为什么您必须进行两个(或更多)读数才能理解它的原因。一个例子是以太网接口接收到的数据包数量。如果你读取并得到400万个数据包,你什么也没学到:电线可能已经从接口上拔出了一年,或者它可以每秒传递数百万个数据包。你必须进行多次读数才能知道任何事情。

另一方面,Gauge32在某一时间测量某些数量,并且可能上升或下降。您不能一定对随着时间的推移进行两个(或更多)读数的有意义观察。一个例子是自由磁盘空间。您现在可以获取该值,然后一个小时后再次获取该值,并发现其变化为零——但您不能得出结论,在过去的一小时内未写入磁盘。可能磁盘正在频繁添加和删除,但不会导致可用空间净变化。


2
+1 表示参考定义标准,并从该标准的说明性示例中进行讨论和解释。 - RubyTuesdayDONO

5

它们都可以代表2^32的值。

区别在于,一旦它们到达2^32,计数器就从0重新开始,并将值(N+2^32)+X表示为X,而仪表则不会包装。

计数器也称为翻转计数器。通常用于计算发送或接收的数据包或八位字节数。当翻转计数器多次环绕后,管理系统难以知道计数器值X表示观察到的数量是X还是(N+2^32)+X,其中N是翻转次数。因此,系统需要定期轮询对象以跟踪包装。

另一方面,仪表用于测量某个实体的当前值,例如排队中存储的当前数据包数量。仪表可用于存储某个实体价值从时间间隔开始到结束的差异。这使得仪表可用于监视实体价值的变化速率。


Counter32和Gauge32都是无符号32位整数,取值范围为0-4294967295(2^32-1)。 - some

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接