我想测量 SNMP GET 请求的网络延迟。有一个免费的命令行工具time,可用于查找各种命令的计时统计信息。例如,它可以通过snmpget以下方式使用:
$ time snmpget -v 2c -c public 192.168.1.3 .1.3.6.1.2.1.2.2.1.10.2
IF-MIB::ifInOctets.2 = Counter32: 112857973
real 0m0.162s
user 0m0.069s
sys 0m0.005s
Run Code Online (Sandbox Code Playgroud)
根据手册,统计数据包括:
调用和终止之间经过的实时时间,
用户 CPU 时间(
times(2)
返回的结构 tms中的tms_utime 和 tms_cutime 值的总和
),
系统 CPU 时间(
times(2)
返回的结构 tms中的tms_stime 和 tms_cstime 值的总和
)。
如您所见,这些选项都不允许测量实际网络延迟时间(排除其他程序执行时间统计)。有什么办法吗?也许不是使用时间工具,而是一些内核黑客?
我想问一下,在我开始编写自己的程序之前。
谢谢,彼得