如何正确对局域网延迟进行基准测试?

如何正确对局域网延迟进行基准测试?

我正在尝试估算 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 可能是现实的,但我希望有人确认。

答案1

如果您正在寻找比 ping 更好的工具,请查看开源 Flent 工具。弗伦特,即“FLExible 网络测试器”,是一个吞吐量与延迟测试工具,由一些非常聪明的网络研究人员创建,他们花了很多年研究网络延迟在负载下如何降低(特别是缓冲区膨胀问题)。

大多数测量网络延迟的人并不太关心空闲网络上每秒一次的小数据包之间的延迟,他们更关心大数据包流中的延迟。这就是 Flent 测试的内容。

相关内容