From e516809a74ffd495481a7adf6b565181861a41f9 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 6 Nov 2023 18:08:28 +1100 Subject: test/perf: Start iperf3 server less often Currently we start both the iperf3 server(s) and client(s) afresh each time we want to make a bandwidth measurement. That's not really necessary as usually a whole batch of bandwidth measurements can use the same server. Split up the iperf3 directive into 3 directives: iperf3s to start the server, iperf3 to make a measurement and iperf3k to kill the server, so that we can start the server less often. This - and more importantly, the reduced number of waits for the server to be ready - reduces runtime of the performance tests on my laptop by about 4m (out of ~28minutes). For now we still restart the server between IPv4 and IPv6 tests. That's because in some cases the latency measurements we make in between use the same ports. Signed-off-by: David Gibson Signed-off-by: Stefano Brivio --- test/perf/pasta_udp | 72 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 21 deletions(-) (limited to 'test/perf/pasta_udp') diff --git a/test/perf/pasta_udp b/test/perf/pasta_udp index 3de73a0..0628bd9 100644 --- a/test/perf/pasta_udp +++ b/test/perf/pasta_udp @@ -33,19 +33,23 @@ th MTU 1500B 4000B 16384B 65535B tr UDP throughput over IPv6: ns to host +iperf3s host 100${i}3 __THREADS__ + ns ip link set dev lo mtu 1500 -iperf3 BW ns host ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 1.0 1.5 ns ip link set dev lo mtu 4000 -iperf3 BW ns host ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 1.2 1.8 ns ip link set dev lo mtu 16384 -iperf3 BW ns host ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 10G +iperf3 BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 10G bw __BW__ 5.0 6.0 ns ip link set dev lo mtu 65535 -iperf3 BW ns host ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 15G +iperf3 BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 15G bw __BW__ 7.0 9.0 +iperf3k host + tl UDP RR latency over IPv6: ns to host lat - lat - @@ -57,19 +61,23 @@ lat __LAT__ 200 150 tr UDP throughput over IPv4: ns to host +iperf3s host 100${i}3 __THREADS__ + ns ip link set dev lo mtu 1500 -iperf3 BW ns host 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 1.0 1.5 ns ip link set dev lo mtu 4000 -iperf3 BW ns host 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 1.2 1.8 ns ip link set dev lo mtu 16384 -iperf3 BW ns host 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 10G +iperf3 BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 10G bw __BW__ 5.0 6.0 ns ip link set dev lo mtu 65535 -iperf3 BW ns host 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 15G +iperf3 BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 15G bw __BW__ 7.0 9.0 +iperf3k host + tl UDP RR latency over IPv4: ns to host lat - lat - @@ -81,12 +89,16 @@ lat __LAT__ 200 150 tr UDP throughput over IPv6: host to ns +iperf3s ns 100${i}2 __THREADS__ + bw - bw - bw - -iperf3 BW host ns ::1 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 15G +iperf3 BW host ::1 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 15G bw __BW__ 7.0 9.0 +iperf3k ns + tl UDP RR latency over IPv6: host to ns lat - lat - @@ -98,12 +110,15 @@ lat __LAT__ 200 150 tr UDP throughput over IPv4: host to ns +iperf3s ns 100${i}2 __THREADS__ bw - bw - bw - -iperf3 BW host ns 127.0.0.1 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 15G +iperf3 BW host 127.0.0.1 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 15G bw __BW__ 7.0 9.0 +iperf3k ns + tl UDP RR latency over IPv4: host to ns lat - lat - @@ -129,19 +144,23 @@ report pasta tap_udp 1 __FREQ__ th MTU 1500B 4000B 16384B 65520B tr UDP throughput over IPv6: ns to host +iperf3s host 100${i}3 __THREADS__ + ns ip link set dev __IFNAME__ mtu 1500 -iperf3 BW ns host __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 2G +iperf3 BW ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 2G bw __BW__ 0.3 0.5 ns ip link set dev __IFNAME__ mtu 4000 -iperf3 BW ns host __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 0.5 0.8 ns ip link set dev __IFNAME__ mtu 16384 -iperf3 BW ns host __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 4G +iperf3 BW ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 4G bw __BW__ 3.0 4.0 ns ip link set dev __IFNAME__ mtu 65520 -iperf3 BW ns host __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 6G +iperf3 BW ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 6G bw __BW__ 6.0 7.0 +iperf3k host + tl UDP RR latency over IPv6: ns to host lat - lat - @@ -153,19 +172,23 @@ lat __LAT__ 200 150 tr UDP throughput over IPv4: ns to host +iperf3s host 100${i}3 __THREADS__ + ns ip link set dev __IFNAME__ mtu 1500 -iperf3 BW ns host __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 2G +iperf3 BW ns __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 2G bw __BW__ 0.3 0.5 ns ip link set dev __IFNAME__ mtu 4000 -iperf3 BW ns host __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 0.5 0.8 ns ip link set dev __IFNAME__ mtu 16384 -iperf3 BW ns host __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 4G +iperf3 BW ns __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 4G bw __BW__ 3.0 4.0 ns ip link set dev __IFNAME__ mtu 65520 -iperf3 BW ns host __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 6G +iperf3 BW ns __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -b 6G bw __BW__ 6.0 7.0 +iperf3k host + tl UDP RR latency over IPv4: ns to host lat - lat - @@ -175,16 +198,19 @@ nsout LAT udp_rr --nolog -P 10003 -C 10013 -4 -c -H __GW__ | sed -n 's/^throughp hostw lat __LAT__ 200 150 - tr UDP throughput over IPv6: host to ns +iperf3s ns 100${i}2 __THREADS__ + nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' nsout ADDR6 ip -j -6 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[] | select(.scope == "global" and .prefixlen == 64).local' bw - bw - bw - -iperf3 BW host ns __ADDR6__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 15G +iperf3 BW host __ADDR6__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 15G bw __BW__ 7.0 9.0 +iperf3k ns + tl UDP RR latency over IPv6: host to ns lat - lat - @@ -196,13 +222,17 @@ lat __LAT__ 200 150 tr UDP throughput over IPv4: host to ns +iperf3s ns 100${i}2 __THREADS__ + nsout ADDR ip -j -4 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[0].local' bw - bw - bw - -iperf3 BW host ns __ADDR__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 15G +iperf3 BW host __ADDR__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 15G bw __BW__ 7.0 9.0 +iperf3k ns + tl UDP RR latency over IPv4: host to ns lat - lat - -- cgit v1.2.3