netsnmp lib中超时的问题

时间:2011-04-26 15:17:18

标签: python net-snmp

我有一个简单的例子:

import netsnmp
var = netsnmp.Varbind('ifHCInOctets','0')
res = netsnmp.snmpgetnext(var,Version = 2,DestHost='localhost',Community='public',Timeout=1000000)
print res[0]

 time python2 test.py 
告诉我:

real    0m4.086s
user    0m0.073s
sys     0m0.007s

为什么4秒= 1000000? snmpd服务器无法在localhost上运行

1 个答案:

答案 0 :(得分:3)

当您通过Timeout=?时,您将设置snmp的内部选择循环在注册超时之前应等待的最长时间。将其设置为1000000意味着“等待100万微秒”,这是1秒。

但是还有一个Retries=?参数指定snmp客户端在超时后重新尝试请求的次数,因此对于Timeout=1000000, Retries=0,select将仅尝试1个请求并在1中超时第二。如果Retries=1它将尝试两次并在2秒内超时。

因此,根据超时和重试的组合,您将看到不同的延迟量。

默认重试次数为3次,因此1次尝试+ 3次重试,每次1秒= 4秒。