2013-03-23 65 views
1

我正在運行一個應用程序,它每隔5分鐘收集超過2000個交換機的snmp數據,upoctet,downoctects和端口狀態,並以綠色或紅色顯示在圖形和交換器視圖中端口狀態,第一次當我添加設備我走過它獲取端口索引保存到數據庫,每隔五分鐘我從數據庫獲取端口索引運行它對oid做一個snmpget通過端口獲取數據端口並將它們保存到MySQL。2000每個端口的snmp snmp

幾乎有8個oid和2000多個串口設備需要更長的時間,下一個oid直到最後一個oid纔會被執行。我聽說snmpbulkget或snmptable但不明白他們,

我想要一種替代方式,我可以減少網絡流量和批量獲取表的數據,而不是我爲每個oid執行一個查詢snmpget規範地表明瞭五分鐘的差異。

我向一個交換機發送一個表請求,並且它返回一個所有端口狀態值的表。

它會減少等待下一個呼叫並加速過程也會減少網絡流量。

是否有可能?

你可以最大限度地改進我的senario:每隔5分鐘就有數千個設備被查詢,用於許多接口計數器。

感謝

回答

0

SNMP GETBULK命令允許指定多個OID和限制由代理應答發送的varbind的數目的maxrepetitions參數。它是您在描述情況下優化性能的理想選擇。當然還有一個問題:

  • SNMP GETBULK不支持SNMP v1提供
  • 它可能會非常棘手設置正確maxrepetitions參數 - 一些代理商拒絕發送迴應,如果用變量的一定量的已被列入回覆