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/passt_udp | 57 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 21 deletions(-) (limited to 'test/perf/passt_udp') diff --git a/test/perf/passt_udp b/test/perf/passt_udp index a117b6a..12d8fbb 100644 --- a/test/perf/passt_udp +++ b/test/perf/passt_udp @@ -41,23 +41,26 @@ report passt udp __THREADS__ __FREQ__ th MTU 256B 576B 1280B 1500B 9000B 65520B - tr UDP throughput over IPv6: guest to host +iperf3s ns 100${i}2 __THREADS__ + bw - bw - guest ip link set dev __IFNAME__ mtu 1280 -iperf3 BW guest ns __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 2G +iperf3 BW guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 2G bw __BW__ 0.8 1.2 guest ip link set dev __IFNAME__ mtu 1500 -iperf3 BW guest ns __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 1.0 1.5 guest ip link set dev __IFNAME__ mtu 9000 -iperf3 BW guest ns __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 5G +iperf3 BW guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 5G bw __BW__ 4.0 5.0 guest ip link set dev __IFNAME__ mtu 65520 -iperf3 BW guest ns __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 7G +iperf3 BW guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 7G bw __BW__ 4.0 5.0 +iperf3k ns + tl UDP RR latency over IPv6: guest to host lat - lat - @@ -70,25 +73,29 @@ lat __LAT__ 200 150 tr UDP throughput over IPv4: guest to host +iperf3s ns 100${i}2 __THREADS__ + guest ip link set dev __IFNAME__ mtu 256 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 500M +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 500M bw __BW__ 0.0 0.0 guest ip link set dev __IFNAME__ mtu 576 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 1G +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 1G bw __BW__ 0.4 0.6 guest ip link set dev __IFNAME__ mtu 1280 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 2G +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 2G bw __BW__ 0.8 1.2 guest ip link set dev __IFNAME__ mtu 1500 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 1.0 1.5 guest ip link set dev __IFNAME__ mtu 9000 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 6G +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 6G bw __BW__ 4.0 5.0 guest ip link set dev __IFNAME__ mtu 65520 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 7G +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -b 7G bw __BW__ 4.0 5.0 +iperf3k ns + tl UDP RR latency over IPv4: guest to host lat - lat - @@ -101,21 +108,25 @@ lat __LAT__ 200 150 tr UDP throughput over IPv6: host to guest +iperf3s guest 100${i}1 __THREADS__ + bw - bw - ns ip link set dev lo mtu 1280 -iperf3 BW ns guest ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 2G +iperf3 BW ns ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 2G bw __BW__ 0.8 1.2 ns ip link set dev lo mtu 1500 -iperf3 BW ns guest ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 2G +iperf3 BW ns ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 2G bw __BW__ 1.0 1.5 ns ip link set dev lo mtu 9000 -iperf3 BW ns guest ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 3.0 4.0 ns ip link set dev lo mtu 65520 -iperf3 BW ns guest ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 3.0 4.0 +iperf3k guest + tl UDP RR latency over IPv6: host to guest lat - lat - @@ -130,26 +141,30 @@ ns ip link set dev lo mtu 65535 tr UDP throughput over IPv4: host to guest +iperf3s guest 100${i}1 __THREADS__ + ns ip link set dev lo mtu 256 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 1G +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 1G bw __BW__ 0.0 0.0 ns ip link set dev lo mtu 576 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 1G +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 1G bw __BW__ 0.4 0.6 ns ip link set dev lo mtu 1280 ns ip addr add ::1 dev lo -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 0.8 1.2 ns ip link set dev lo mtu 1500 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 1.0 1.5 ns ip link set dev lo mtu 9000 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 3.0 4.0 ns ip link set dev lo mtu 65520 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ -b 3G bw __BW__ 3.0 4.0 +iperf3k guest + tl UDP RR latency over IPv4: host to guest lat - lat - -- cgit v1.2.3