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 <david(a)gibson.dropbear.id.au> --- test/lib/test | 57 ++++++++++++++++++++++----------- test/perf/passt_tcp | 59 ++++++++++++++++++++-------------- test/perf/passt_udp | 57 ++++++++++++++++++++------------- test/perf/pasta_tcp | 77 ++++++++++++++++++++++++++++++--------------- test/perf/pasta_udp | 72 +++++++++++++++++++++++++++++------------- 5 files changed, 213 insertions(+), 109 deletions(-) diff --git a/test/lib/test b/test/lib/test index 3ca5dbc..1d571c3 100755 --- a/test/lib/test +++ b/test/lib/test @@ -13,19 +13,45 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio <sbrivio(a)redhat.com> +# test_iperf3s() - Start iperf3 server +# $1: Destination/server context +# $2: Port number, ${i} is translated to process index +# $3: Number of processes to run in parallel +test_iperf3s() { + __sctx="${1}" + __port="${2}" + __procs="$((${3} - 1))" + + pane_or_context_run_bg "${__sctx}" \ + 'for i in $(seq 0 '${__procs}'); do' \ + ' iperf3 -s -p'${__port}' &' \ + ' echo $! > s${i}.pid; ' \ + 'done' \ + + sleep 1 # Wait for server to be ready +} + +# test_iperf3k() - Kill iperf3 server +# $1: Destination/server context +test_iperf3k() { + __sctx="${1}" + + pane_or_context_run "${__sctx}" 'kill -INT $(cat s*.pid); rm s*.pid' + + sleep 3 # Wait for kernel to free up ports +} + # test_iperf3() - Ugly helper for iperf3 directive # $1: Variable name: to put the measure bandwidth into # $2: Source/client context -# $3: Destination/server context -# $4: Destination name or address for client -# $5: Port number, ${i} is translated to process index -# $6: Number of processes to run in parallel -# $7: Run time, in seconds +# $3: Destination name or address for client +# $4: Port number, ${i} is translated to process index +# $5: Number of processes to run in parallel +# $6: Run time, in seconds # $@: Client options test_iperf3() { __var="${1}"; shift __cctx="${1}"; shift - __sctx="${1}"; shift __dest="${1}"; shift __port="${1}"; shift __procs="$((${1} - 1))"; shift @@ -33,14 +59,6 @@ test_iperf3() { pane_or_context_run "${__cctx}" 'rm -f c*.json' - pane_or_context_run_bg "${__sctx}" \ - 'for i in $(seq 0 '${__procs}'); do' \ - ' (iperf3 -s1 -p'${__port}' -i'${__time}') &' \ - ' echo $! > s${i}.pid; ' \ - 'done' \ - - sleep 1 # Wait for server to be ready - # A 1s wait for connection on what's basically a local link # indicates something is pretty wrong __timeout=1000 @@ -55,17 +73,12 @@ test_iperf3() { ' wait' \ ')' - # Kill the server, just in case -1 didn't work right - pane_or_context_run "${__sctx}" 'kill -INT $(cat s*.pid); rm s*.pid' - __jval=".end.sum_received.bits_per_second" __bw=$(pane_or_context_output "${__cctx}" \ 'cat c*.json | jq -rMs "map('${__jval}') | add"') TEST_ONE_subs="$(list_add_pair "${TEST_ONE_subs}" "__${__var}__" "${__bw}" )" - - sleep 3 # Wait for kernel to free up ports } test_one_line() { @@ -283,6 +296,12 @@ test_one_line() { "lat") table_value_latency ${__arg} || TEST_ONE_perf_nok=1 ;; + "iperf3s") + test_iperf3s ${__arg} + ;; + "iperf3k") + test_iperf3k ${__arg} + ;; "iperf3") test_iperf3 ${__arg} ;; diff --git a/test/perf/passt_tcp b/test/perf/passt_tcp index 7046f3c..9363922 100644 --- a/test/perf/passt_tcp +++ b/test/perf/passt_tcp @@ -50,22 +50,25 @@ th MTU 256B 576B 1280B 1500B 9000B 65520B tr TCP 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__ -w 4M +iperf3 BW guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 4M bw __BW__ 1.2 1.5 guest ip link set dev __IFNAME__ mtu 1500 -iperf3 BW guest ns __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 4M +iperf3 BW guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 4M bw __BW__ 1.6 1.8 guest ip link set dev __IFNAME__ mtu 9000 -iperf3 BW guest ns __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 8M +iperf3 BW guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 8M 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__ -w 16M +iperf3 BW guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 16M bw __BW__ 7.0 8.0 +iperf3k ns + tl TCP RR latency over IPv6: guest to host lat - lat - @@ -86,27 +89,30 @@ nsb tcp_crr --nolog -6 gout LAT tcp_crr --nolog -6 -c -H __GW6__%__IFNAME__ | sed -n 's/^throughput=\(.*\)/\1/p' lat __LAT__ 500 400 - tr TCP 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__ -w 1M +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 1M bw __BW__ 0.2 0.3 guest ip link set dev __IFNAME__ mtu 576 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 1M +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 1M bw __BW__ 0.5 0.8 guest ip link set dev __IFNAME__ mtu 1280 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 4M +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 4M bw __BW__ 1.2 1.5 guest ip link set dev __IFNAME__ mtu 1500 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 4M +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 4M bw __BW__ 1.6 1.8 guest ip link set dev __IFNAME__ mtu 9000 -iperf3 BW guest ns __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 8M +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 8M 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__ -w 16M +iperf3 BW guest __GW__ 100${i}2 __THREADS__ __TIME__ __OPTS__ -w 16M bw __BW__ 7.0 8.0 +iperf3k ns + tl TCP RR latency over IPv4: guest to host lat - lat - @@ -127,24 +133,27 @@ nsb tcp_crr --nolog -4 gout LAT tcp_crr --nolog -4 -c -H __GW__ | sed -n 's/^throughput=\(.*\)/\1/p' lat __LAT__ 500 400 - tr TCP 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__ +iperf3 BW ns ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 1.0 1.2 ns ip link set dev lo mtu 1500 -iperf3 BW ns guest ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 2.0 3.0 ns ip link set dev lo mtu 9000 -iperf3 BW ns guest ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 5.0 6.0 ns ip link set dev lo mtu 65520 -iperf3 BW ns guest ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns ::1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 6.0 6.8 ns ip link set dev lo mtu 65535 +iperf3k guest + tl TCP RR latency over IPv6: host to guest lat - lat - @@ -169,27 +178,31 @@ lat __LAT__ 500 350 tr TCP 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__ +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 0.3 0.5 ns ip link set dev lo mtu 576 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 0.5 1.0 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__ +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 2.0 3.0 ns ip link set dev lo mtu 1500 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 2.0 3.0 ns ip link set dev lo mtu 9000 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 5.0 6.0 ns ip link set dev lo mtu 65520 -iperf3 BW ns guest 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns 127.0.0.1 100${i}1 __THREADS__ __TIME__ __OPTS__ bw __BW__ 6.0 6.8 ns ip link set dev lo mtu 65535 +iperf3k guest + tl TCP RR latency over IPv4: host to guest lat - lat - 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 - diff --git a/test/perf/pasta_tcp b/test/perf/pasta_tcp index 9e9dc37..a8938c3 100644 --- a/test/perf/pasta_tcp +++ b/test/perf/pasta_tcp @@ -37,21 +37,24 @@ report pasta lo_tcp __THREADS__ __FREQ__ th MTU 1500B 4000B 16384B 65535B - tr TCP 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__ +iperf3 BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 ns ip link set dev lo mtu 4000 -iperf3 BW ns host ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 ns ip link set dev lo mtu 16384 -iperf3 BW ns host ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 ns ip link set dev lo mtu 65535 -iperf3 BW ns host ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 +iperf3k host + tl TCP RR latency over IPv6: ns to host lat - lat - @@ -72,19 +75,23 @@ lat __LAT__ 500 350 tr TCP 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__ +iperf3 BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 ns ip link set dev lo mtu 4000 -iperf3 BW ns host 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 ns ip link set dev lo mtu 16384 -iperf3 BW ns host 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 ns ip link set dev lo mtu 65535 -iperf3 BW ns host 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ +iperf3 BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 +iperf3k host + tl TCP RR latency over IPv4: ns to host lat - lat - @@ -103,14 +110,17 @@ nsout LAT tcp_crr --nolog -P 10003 -C 10013 -4 -c -H 127.0.0.1 | sed -n 's/^thro hostw lat __LAT__ 500 350 - tr TCP 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__ +iperf3 BW host ::1 100${i}2 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 +iperf3k ns + tl TCP RR latency over IPv6: host to ns lat - lat - @@ -131,12 +141,16 @@ lat __LAT__ 1000 700 tr TCP 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__ +iperf3 BW host 127.0.0.1 100${i}2 __THREADS__ __TIME__ __OPTS__ bw __BW__ 15.0 20.0 +iperf3k ns + tl TCP RR latency over IPv4: host to ns lat - lat - @@ -158,7 +172,6 @@ lat __LAT__ 1000 700 te - test pasta: throughput and latency (connections via tap) nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' @@ -173,21 +186,24 @@ report pasta tap_tcp __THREADS__ __FREQ__ th MTU 1500B 4000B 16384B 65520B - tr TCP 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__ -w 512k +iperf3 BW ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 512k bw __BW__ 0.2 0.4 ns ip link set dev __IFNAME__ mtu 4000 -iperf3 BW ns host __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 1M +iperf3 BW ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 1M bw __BW__ 0.3 0.5 ns ip link set dev __IFNAME__ mtu 16384 -iperf3 BW ns host __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 8M +iperf3 BW ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 8M bw __BW__ 1.5 2.0 ns ip link set dev __IFNAME__ mtu 65520 -iperf3 BW ns host __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 8M +iperf3 BW ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 8M bw __BW__ 2.0 2.5 +iperf3k host + tl TCP RR latency over IPv6: ns to host lat - lat - @@ -208,19 +224,23 @@ lat __LAT__ 1500 500 tr TCP 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__ -w 512k +iperf3 BW ns __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 512k bw __BW__ 0.2 0.4 ns ip link set dev __IFNAME__ mtu 4000 -iperf3s BW ns host __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 1M +iperf3 BW ns __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 1M bw __BW__ 0.3 0.5 ns ip link set dev __IFNAME__ mtu 16384 -iperf3 BW ns host __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 8M +iperf3 BW ns __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 8M bw __BW__ 1.5 2.0 ns ip link set dev __IFNAME__ mtu 65520 -iperf3 BW ns host __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 8M +iperf3 BW ns __GW__ 100${i}3 __THREADS__ __TIME__ __OPTS__ -w 8M bw __BW__ 2.0 2.5 +iperf3k host + tl TCP RR latency over IPv4: ns to host lat - lat - @@ -239,16 +259,19 @@ nsout LAT tcp_crr --nolog -P 10003 -C 10013 -4 -c -H __GW__ | sed -n 's/^through hostw lat __LAT__ 1500 500 - tr TCP 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__ +iperf3 BW host __ADDR6__ 100${i}2 __THREADS__ __TIME__ __OPTS__ bw __BW__ 8.0 10.0 +iperf3k ns + tl TCP RR latency over IPv6: host to ns lat - lat - @@ -270,13 +293,17 @@ lat __LAT__ 5000 10000 tr TCP 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__ +iperf3 BW host __ADDR__ 100${i}2 __THREADS__ __TIME__ __OPTS__ bw __BW__ 8.0 10.0 +iperf3k ns + tl TCP RR latency over IPv4: host to ns lat - lat - 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 - -- 2.41.0