2013-03-23 86 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参数 - 一些代理商拒绝发送回应,如果用变量的一定量的已被列入回复