2011-04-26 80 views
1

超时我有简单的例子:问题与netsnmp LIB

 
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服务器无法在本地主机上工作

回答

3

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

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

因此,根据Timeout和Retries的组合,您将看到不同数量的延迟。

默认的重试次数是3次,所以1次尝试+3次重试,每次1秒钟= 4秒。