1

我试图展示排队效果如何随着时间的推移而延迟,因此我在从源向目标发送 iperf udp 流量的同时从源对目标执行 ping 操作。但我注意到,我从 ping 看到的延迟在 iperf 的持续时间内立即减少,这不是我所期望的。有人可以解释为什么会这样吗?注意:我尚未更改队列或任何其他设置

来源 iperf 流量:

iperf -c destination -u -t 10 -b 10mb &

ping 的输出(注意 iperf 启动时突然减少,当 iperf 完成时再次增加)

64 bytes from Destination-link-1 (10.10.2.2): icmp_req=12 ttl=63 time=1.17 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=13 ttl=63 time=1.16 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=14 ttl=63 time=1.16 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=15 ttl=63 time=1.22 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=16 ttl=63 time=0.770 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=17 ttl=63 time=0.480 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=18 ttl=63 time=0.472 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=19 ttl=63 time=0.530 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=20 ttl=63 time=0.521 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=21 ttl=63 time=0.515 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=22 ttl=63 time=0.585 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=23 ttl=63 time=0.445 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=24 ttl=63 time=0.450 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=25 ttl=63 time=0.514 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=26 ttl=63 time=0.630 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=27 ttl=63 time=0.966 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=28 ttl=63 time=1.09 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=29 ttl=63 time=1.30 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=30 ttl=63 time=0.984 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=31 ttl=63 time=0.908 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=32 ttl=63 time=1.02 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=33 ttl=63 time=1.28 ms
64 bytes from Destination-link-1 (10.10.2.2): icmp_req=34 ttl=63 time=1.72 ms
4

1 回答 1

0

一种假设是运行 iperf 会使系统的某些组件(例如 NIC、CPU 等)持续保持唤醒状态。相反,当您只是运行 ping 时,这些组件可能会休眠或倾向于其他任务。唤醒 NIC 或中断 CPU 以使其服务 ping 可能需要一些时间,从而导致 ping 时间稍长。

我在以不同的间隔运行 ping 时看到了这种行为。在 1 Gbits/s 链路上,sudo ping <ip> -i 0.01 -c 1000(1000 次 ping 和 10 毫秒间隔)产生的平均 ping 时间为 0.235 毫秒。我得到了类似的结果,间隔更大。但是,对于 1 毫秒或更短的时间间隔,我观察到平均 ping 时间为 0.099 毫秒。我相信由于上述原因,ping 之间的较小间隔会产生更短的 ping 时间。

于 2015-04-29T22:51:05.633 回答