0

我已经使用 mib2c.create-dataset.conf (启用缓存)在我的 snmd.conf ::agentXTimeout 15

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

#define testTABLE_TIMEOUT        60

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

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

我在哪里读到:(当代理收到对该表中某些内容的请求并且缓存早于定义的超时(12s > 10s)时,它重新加载数据。这是预期的行为。但是代理超时后不会自动释放本地缓存(即调用“免费”例程)。而是由常规“垃圾收集”运行(每分钟一次)处理,这将释放任何陈旧的缓存。同时,尝试使用该缓存的请求将发现它已过期,并重新加载数据。)

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

4

1 回答 1

0

不幸的是,如果您的数据集非常大并且需要很长时间加载,那么您只需要忍受缓慢的加载和缓慢的响应。您可以尝试使用或其他方式定期加载数据,snmp_alarm以便在收到请求时立即可用,但这并不能真正解决问题,因为在触发警报后请求仍然会立即出现,并且代理会仍然需要很长时间才能做出反应。

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

于 2012-10-31T13:36:38.500 回答