为什么异步pysnmp这么慢?

时间:2013-10-22 05:54:11

标签: python asynchronous pysnmp

我需要使用简单的snmpget查询来询问4000个主机。我使用带有线程的netsnmp和带有扭曲的pynetsnmp,它工作得非常快(少于1分钟)。我尝试将pysnmp与AsyncCommandGenerator和pysnmp with twisted (i've fixed that example with one instance of SnmpEngine)

一起使用

花了10多分钟。难道我做错了什么? pysnmp应该这么慢吗?

1 个答案:

答案 0 :(得分:3)

编辑:添加了pastebin示例

请发布您当前的脚本版本。

在您提到的代码中,您可能会尝试优化以下内容:

addV1System()
addTargetParams()
addSocketTransport()

每次使用相同的参数调用它们时,都会调用它们。

换句话说,如果您查询的4000个主机中唯一的区别是主机的地址,那么您需要重复的唯一调用是addTargetAddr()。否则,您将在每次请求时重新配置SNMP引擎。

为了更好地估计pysnmp性能,您考虑运行the following example配置了您要查询的4000个主机。

如果您永远不需要SNMPv3且性能是您的首选,您可能希望使用pysnmp的low-level API

但无论如何,就性能而言,你永远不会接近C实现。 ; - )