![如何正确对局域网延迟进行基准测试?](https://linux22.com/image/1522940/%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A1%AE%E5%AF%B9%E5%B1%80%E5%9F%9F%E7%BD%91%E5%BB%B6%E8%BF%9F%E8%BF%9B%E8%A1%8C%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95%EF%BC%9F.png)
我正在尝试估算 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 可能是现实的,但我希望有人确认。