没有来自主人的回复:snmpwalk

时间:2012-10-31 11:42:06

标签: snmp net-snmp snmp4j snmpd

我使用mib2c.create-dataset.conf实现了AgentX(启用了缓存)  在我的snmd.conf :: agentXTimeout 15

在testtable.h文件中,我更改了缓存值,如下所示......

#define testTABLE_TIMEOUT        60

根据我的理解,它每60秒加载一次数据。 现在我的问题是,如果数据表中的数据超过某个数量,则加载它需要一些时间。

如同之间如果我解雇了SNMPWALK它给了我“主机没有响应”如果我对整个表使用SNMPWALK,并且在testTABLE_TIMEOUT之间发生,它在两者之间停止并显示以下错误(主机没有响应)。 请告诉我怎么解决?在我的表中,存在大量数据并且经常变化。

我读了一些地方: (当代理收到此表中某些内容的请求且缓存早于定义的超时(12s> 10s)时, 重新加载数据。这是预期的行为。 但是,一旦超时到期,代理就不会自动释放本地缓存(即调用'free'例程)。 相反,这是通过定期的“垃圾收集”运行(每分钟一次)来处理的,这将释放任何过时的缓存。  在此期间,尝试使用该缓存的请求将发现它已过期,并重新加载数据。)

这两者之间有什么联系吗?我不能得到这个...如何解决我的问题???

1 个答案:

答案 0 :(得分:0)

不幸的是,如果您的数据集非常大并且需要很长时间才能加载,那么您只需要承受缓慢的负载和缓慢的响应。您可以使用snmp_alarm或其他东西定期加载数据,以便在请求进入时立即可用,但这并不能解决问题,因为请求仍然可以在警报发生后立即生效触发后,代理人仍需要很长时间才能做出回应。

所以......最好的办法是尽可能地优化你的加载例程,并且可能只是增加管理器使用的超时。例如,对于snmpwalk,您可以将-t 30添加到命令行参数中,我打赌一切都会突然正常工作。