1

我有一个简单的例子:

导入 netsnmp
var = netsnmp.Varbind('ifHCInOctets','0')
res = netsnmp.snmpgetnext(var,Version = 2,DestHost='localhost',Community='public',Timeout=1000000)
打印资源[0]

时间python2 test.py
给我看看:

真正的 0m4.086s
用户 0m0.073s
系统 0m0.007s

为什么 4 秒 = 1000000 ?snmpd 服务器在本地主机上不起作用

4

1 回答 1

4

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

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

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

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

于 2011-04-26T18:03:45.780 回答