为什么异步pysnmp这么慢?

2024-05-16 18:12:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用简单的snmpget查询询问4000个主机。我把netsnmp用于线程,pynetsnmp用于twisted,它的工作速度非常快(不到1分钟)。我尝试将pysnmp与AsyncCommandGenerator和pysnmp with twisted (i've fixed that example with one instance of SnmpEngine)一起使用

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


Tags: instancethatexamplewithvetwisted线程one
1条回答
网友
1楼 · 发布于 2024-05-16 18:12:48

编辑:添加了pastebin示例

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

在您参考的代码中,您可以尝试优化以下部分:

addV1System()
addTargetParams()
addSocketTransport()

当你用相同的参数多次调用它们时调用。在

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

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

如果您永远不需要SNMPv3,并且性能是您的首要任务,那么您可能希望使用pysnmp的low-level API。在

但是在任何情况下,从性能上讲,您永远不会接近C实现。;—)

相关问题 更多 >