2010-04-27 1229 views
11

有人能指點我Gauge32 vs Counter32的一個很好的定義嗎?我知道Counter32可以換行,但Gauge32不能。SNMP Gauge32 vs Counter32的定義

我想了解它們的語義。例如,我聽說你應該把兩個Counter32讀數之間的差異得到每秒一個值。有沒有像Gauge32值那樣的東西?

感謝您的任何見解。

回答

8

是的,對於Gauge32,你也可以使用它。

除了存儲在Counter32中的數據不斷增加(並在達到上限命中時換行)之外,內部深度,Gauge32和Counter32是相同的。

http://www.ireasoning.com/javadocs/com/ireasoning/protocol/snmp/SnmpCounter32.html

對於Gauge32你可以預期的數據的增加和減少基於它試圖提供什麼樣的現實世界的信息。

http://www.ireasoning.com/javadocs/com/ireasoning/protocol/snmp/SnmpGauge32.html

+0

比較此問題與問題和更好的投票答案我認爲這是誤導,由於第一句話。 bstpierre的答案不再那麼長,並且足夠自足,以至於不需要檢查引用的RFC以獲得正確的印象。此外,他偉大的例子清楚地表明瞭爲什麼減去/添加gauge32值是錯誤的(取決於你的確切含義)。因此這個答案爲-1。 – Sebastian 2016-10-06 08:51:48

+0

@Sebastian任何你喜歡的。如果你碰巧檢查了關於SO的其他討論,你應該清楚地知道,高度投票的答案(我貢獻了很多)並不總是被接受爲答案,因爲並不是每個提問者都在尋找完美答案。 – 2016-10-06 09:59:31

21

這些(即定義)的最佳定義是在RFC 定義它們的部分:RFC 2578

如RFC所述,Counter32沒有定義的初始值,因此Counter32的單個讀數沒有信息內容。這就是爲什麼你必須採取兩個(或更多)的讀數來理解它。一個例子就是在以太網接口上接收的數據包數量。如果你閱讀並獲得4百萬個數據包,那麼你還沒有學到任何東西:過去一年,線路可能已經被拉出接口,或者它可能每秒傳遞數百萬個數據包。你必須通過多次閱讀來了解任何事情。

另一方面,Gauge32可以在某個時刻測量一些數量,並且可能會上升或下降。你不一定會隨着時間的推移對兩個(或更多)讀數進行有意義的觀察。這方面的一個例子是可用磁盤空間。您現在可以獲取值,並且從現在開始一小時,然後發現變化爲零 - 但您無法得出在一小時內沒有任何內容寫入磁盤的結論。有可能是因爲不斷增加和刪除磁盤而導致磁盤空閒空間沒有淨變化。

+1

+1參考定義標準和討論/解釋該標準中的說明性示例 – RubyTuesdayDONO 2014-02-10 00:58:41

+0

+1偉大的說明 – godzillante 2014-07-08 15:30:31

2

它們都可以表示值高達2^32。

不同之處在於,一旦它們達到2^32,計數器將從0開始重新計算,並將值(N + 2^32)+ X表示爲X,而量表不包含。

計數器也稱爲翻轉計數器。 它們通常用於計數發送或接收的數據包或八位組的數量。 在輪轉計數器纏繞數次後,管理系統很難知道X的計數器值是指觀察到的數量是X還是(N + 2^32)+ X,其中N沒有翻轉。所以系統需要週期性地輪詢對象以保持包絡的軌跡。

另一方面,衡量標準用於衡量某些實體的當前值,例如存儲在隊列中的當前數據包數量。可以使用衡量表來存儲某些實體從開始到結束的值的差異的時間間隔。這使得量表能夠用來監視實體的價值變化率。