我正在尝试估算 LAN 上的延迟。为此,显而易见的想法是使用ping
。因此,如下所示:
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.241 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.190 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.177 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.190 ms
好的,但是有防火墙,所以可能 1 秒就会中断防火墙中的 conntrack,让我们尝试更小的间隔ping -i 0.05
:
64 bytes from 192.168.1.1: icmp_seq=27 ttl=64 time=0.119 ms
64 bytes from 192.168.1.1: icmp_seq=28 ttl=64 time=0.106 ms
64 bytes from 192.168.1.1: icmp_seq=29 ttl=64 time=0.104 ms
64 bytes from 192.168.1.1: icmp_seq=30 ttl=64 time=0.109 ms
它看起来明显快得多。因此让我们采用更小的间隔ping -i 0.005
:
64 bytes from 192.168.1.1: icmp_seq=2139 ttl=64 time=0.059 ms
64 bytes from 192.168.1.1: icmp_seq=2140 ttl=64 time=0.073 ms
64 bytes from 192.168.1.1: icmp_seq=2141 ttl=64 time=0.056 ms
64 bytes from 192.168.1.1: icmp_seq=2142 ttl=64 time=0.068 ms
此时我收集了大量 ping 日志,然后计算了平均值,结果是:0.068 ms
。当我对 8k 巨型帧重复测试时ping -M do -s 8000
,它稳定在 0.220 毫秒左右。
那么问题是 - 实际延迟是多少?为什么减少间隔也会减少 ping 响应时间?
我对大吞吐量延迟比偶尔的延迟更感兴趣,因为它应该路由 NFSv4,所以 0.220 可能是现实的,但我希望有人确认。