1

I am trying to show how queueing effects delay over time so I am pinging my destination from my source while sending iperf udp traffic from the source to destination. But I noticed that the delay I am seeing from the ping immediately decreases for the duration of iperf which is not what I expected. Can someone please explain why this is happening? note: I have not yet changed the queue or any other setting

iperf traffic on source:

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

output from ping (note the sudden decrease when iperf starts and increase again when iperf finishes)

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

1 Answers1

0

One hypothesis is that running iperf keeps some component of your system (e.g. NIC, CPU, etc.) continuously awake. In contrast, when you are just running ping, these components might sleep or tend to other tasks. Waking up the NIC or interrupting a CPU to get it to service the pings can take time, leading to slightly longer ping times.

I have seen this behavior when running pings with different intervals between them. On 1 Gbits/s links, sudo ping <ip> -i 0.01 -c 1000 (1000 pings with 10ms interval between pings) yields an average ping time 0.235 ms. I get similar results with larger intervals. However, for an interval of 1 ms or less, I observe an average ping time of 0.099 ms. Smaller intervals between pings yield smaller ping times, I believe for the reason described above.

aousterh
  • 118
  • 2
  • 8