aboutgitcodebugslistschat
path: root/test
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2021-10-21 04:54:05 +0200
committerStefano Brivio <sbrivio@redhat.com>2021-10-21 04:54:05 +0200
commitc3f8e4d2cd55e57419478ff849265d1e342e7990 (patch)
treed4e204ea27ae268f8df03557d51c72b5c47f2108 /test
parent1f3d6f96b5bb1ec59fed27d4048166187fc62d41 (diff)
downloadpasst-c3f8e4d2cd55e57419478ff849265d1e342e7990.tar
passt-c3f8e4d2cd55e57419478ff849265d1e342e7990.tar.gz
passt-c3f8e4d2cd55e57419478ff849265d1e342e7990.tar.bz2
passt-c3f8e4d2cd55e57419478ff849265d1e342e7990.tar.lz
passt-c3f8e4d2cd55e57419478ff849265d1e342e7990.tar.xz
passt-c3f8e4d2cd55e57419478ff849265d1e342e7990.tar.zst
passt-c3f8e4d2cd55e57419478ff849265d1e342e7990.zip
test/perf: Actually load passt enough to test UDP performance
With recent improvements, we're not CPU-bound at all while testing UDP performance. Give the VM more memory and CPUs, forward two additional ports, start up to four threads in parallel, and give single iperf3 threads higher bandwidth targets. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'test')
-rwxr-xr-xtest/lib/setup13
-rw-r--r--test/perf/passt_udp36
-rw-r--r--test/perf/pasta_udp16
3 files changed, 34 insertions, 31 deletions
diff --git a/test/lib/setup b/test/lib/setup
index a81e91f..124e35b 100755
--- a/test/lib/setup
+++ b/test/lib/setup
@@ -13,9 +13,9 @@
# Copyright (c) 2021 Red Hat GmbH
# Author: Stefano Brivio <sbrivio@redhat.com>
-VCPUS="$( [ $(nproc) -ge 8 ] && echo 4 || echo $(( $(nproc) / 2 + 1 )) )"
+VCPUS="$( [ $(nproc) -ge 8 ] && echo 6 || echo $(( $(nproc) / 2 + 1 )) )"
__mem_kib="$(sed -n 's/MemTotal:[ ]*\([0-9]*\) kB/\1/p' /proc/meminfo)"
-VMEM="$((${__mem_kib} / 1024 / 8))"
+VMEM="$((${__mem_kib} / 1024 / 4))"
# setup_build() - Set up pane layout for build tests
setup_build() {
@@ -107,6 +107,9 @@ setup_passt_in_ns() {
# 10011 as server | forwarded to guest | spliced to ns
# 10012 | as server | spliced to ns
# 10013 | spliced to init | as server
+ #
+ # 10021 as server | forwarded to guest |
+ # 10031 as server | forwarded to guest |
__opts=
[ ${PCAP} -eq 1 ] && __opts="${__opts} -p /tmp/pasta_with_passt.pcap"
@@ -138,8 +141,8 @@ setup_passt_in_ns() {
[ ${PCAP} -eq 1 ] && __opts="${__opts} -p /tmp/passt_in_pasta.pcap"
[ ${DEBUG} -eq 1 ] && __opts="${__opts} -d"
- #pane_run PASST "valgrind --max-stackframe=3000000 ./passt -f ${__opts} -t 10001,10011 -u 10001,10011"
- pane_run PASST "./passt -f ${__opts} -t 10001,10011 -u 10001,10011"
+ #pane_run PASST "valgrind --max-stackframe=3000000 ./passt -f ${__opts} -t 10001,10011,10021,10031 -u 10001,10011,10021,10031"
+ pane_run PASST "./passt -f ${__opts} -t 10001,10011,10021,10031 -u 10001,10011,10021,10031"
sleep 1
pane_run GUEST './qrap 5 kvm -m '${VMEM}' -cpu host -smp '${VCPUS} \
@@ -148,7 +151,7 @@ setup_passt_in_ns() {
'-nodefaults ' \
'-append "console=ttyS0 mitigations=off apparmor=0 ' \
'virtio-net.napi_tx=1"' \
- "-device virtio-net-pci,netdev=hostnet0,x-txburst=131072"\
+ "-device virtio-net-pci,netdev=hostnet0,x-txburst=262144"\
"-netdev socket,fd=5,id=hostnet0"
pane_wait GUEST
}
diff --git a/test/perf/passt_udp b/test/perf/passt_udp
index 1385c86..a5d43fc 100644
--- a/test/perf/passt_udp
+++ b/test/perf/passt_udp
@@ -31,9 +31,9 @@ hout FREQ_PROCFS (echo "scale=1"; sed -n 's/cpu MHz.*: \([0-9]*\)\..*$/(\1+10^2\
hout FREQ_CPUFREQ (echo "scale=1"; printf '( %i + 10^5 / 2 ) / 10^6\n' $(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq) ) | bc -l
hout FREQ [ -n "__FREQ_CPUFREQ__" ] && echo __FREQ_CPUFREQ__ || echo __FREQ_PROCFS__
-set THREADS 2
+set THREADS 4
set STREAMS 1
-set OPTS -u -i1 -t30 -P __STREAMS__ --pacing-timer 10000
+set OPTS -u -i1 -t30 -P __STREAMS__ --pacing-timer 1000
info Throughput in Gbps, latency in µs, __THREADS__ threads at __FREQ__ GHz, one stream each
@@ -50,15 +50,15 @@ iperf3c guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __OPTS__ -b 2G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 0.8 1.2
guest ip link set dev __IFNAME__ mtu 1500
-iperf3c guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __OPTS__ -b 2G
+iperf3c guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __OPTS__ -b 3G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 1.0 1.5
guest ip link set dev __IFNAME__ mtu 9000
-iperf3c guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __OPTS__ -b 4G
+iperf3c guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __OPTS__ -b 5G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 4.0 5.0
guest ip link set dev __IFNAME__ mtu 65520
-iperf3c guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __OPTS__ -b 5G
+iperf3c guest __GW6__%__IFNAME__ 100${i}2 __THREADS__ __OPTS__ -b 7G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 4.0 5.0
@@ -75,11 +75,11 @@ lat __LAT__ 200 150
tr UDP throughput over IPv4: guest to host
guest ip link set dev __IFNAME__ mtu 256
-iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 300M
+iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 500M
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 0.1 0.2
guest ip link set dev __IFNAME__ mtu 576
-iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 500M
+iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 1G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 0.4 0.6
guest ip link set dev __IFNAME__ mtu 1280
@@ -87,15 +87,15 @@ iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 2G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 0.8 1.2
guest ip link set dev __IFNAME__ mtu 1500
-iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 2G
+iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 3G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 1.0 1.5
guest ip link set dev __IFNAME__ mtu 9000
-iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 4G
+iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 6G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 4.0 5.0
guest ip link set dev __IFNAME__ mtu 65520
-iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 5G
+iperf3c guest __GW__ 100${i}2 __THREADS__ __OPTS__ -b 7G
iperf3s BW ns 100${i}2 __THREADS__
bw __BW__ 4.0 5.0
@@ -122,11 +122,11 @@ iperf3c ns ::1 100${i}1 __THREADS__ __OPTS__ -b 2G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 1.0 1.5
ns ip link set dev lo mtu 9000
-iperf3c ns ::1 100${i}1 __THREADS__ __OPTS__ -b 4G
+iperf3c ns ::1 100${i}1 __THREADS__ __OPTS__ -b 3G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 4.0 5.0
ns ip link set dev lo mtu 65520
-iperf3c ns ::1 100${i}1 __THREADS__ __OPTS__ -b 4G
+iperf3c ns ::1 100${i}1 __THREADS__ __OPTS__ -b 3G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 5.0 5.5
@@ -144,28 +144,28 @@ ns ip link set dev lo mtu 65535
tr UDP throughput over IPv4: host to guest
ns ip link set dev lo mtu 256
-iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 300M
+iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 1G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 0.1 0.2
ns ip link set dev lo mtu 576
-iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 500M
+iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 1G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 0.4 0.6
ns ip link set dev lo mtu 1280
ns ip addr add ::1 dev lo
-iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 2G
+iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 3G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 0.8 1.2
ns ip link set dev lo mtu 1500
-iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 2G
+iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 3G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 1.0 1.5
ns ip link set dev lo mtu 9000
-iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 4G
+iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 3G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 4.0 5.0
ns ip link set dev lo mtu 65520
-iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 4G
+iperf3c ns 127.0.0.1 100${i}1 __THREADS__ __OPTS__ -b 3G
iperf3s BW guest 100${i}1 __THREADS__
bw __BW__ 5.0 5.5
diff --git a/test/perf/pasta_udp b/test/perf/pasta_udp
index 0968379..39a6e24 100644
--- a/test/perf/pasta_udp
+++ b/test/perf/pasta_udp
@@ -141,19 +141,19 @@ th MTU 1500B 4000B 16384B 65520B
tr UDP throughput over IPv6: ns to host
ns ip link set dev __IFNAME__ mtu 1500
-iperf3c ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __OPTS__ -b 1G
+iperf3c ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __OPTS__ -b 2G
iperf3s BW host 100${i}3 __THREADS__
bw __BW__ 0.3 0.5
ns ip link set dev __IFNAME__ mtu 4000
-iperf3c ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __OPTS__ -b 2G
+iperf3c ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __OPTS__ -b 3G
iperf3s BW host 100${i}3 __THREADS__
bw __BW__ 0.5 0.8
ns ip link set dev __IFNAME__ mtu 16384
-iperf3c ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __OPTS__ -b 3G
+iperf3c ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __OPTS__ -b 4G
iperf3s BW host 100${i}3 __THREADS__
bw __BW__ 3.0 4.0
ns ip link set dev __IFNAME__ mtu 65520
-iperf3c ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __OPTS__ -b 3G
+iperf3c ns __GW6__%__IFNAME__ 100${i}3 __THREADS__ __OPTS__ -b 6G
iperf3s BW host 100${i}3 __THREADS__
bw __BW__ 6.0 7.0
@@ -169,19 +169,19 @@ lat __LAT__ 200 150
tr UDP throughput over IPv4: ns to host
ns ip link set dev __IFNAME__ mtu 1500
-iperf3c ns __GW__ 100${i}3 __THREADS__ __OPTS__ -b 1G
+iperf3c ns __GW__ 100${i}3 __THREADS__ __OPTS__ -b 2G
iperf3s BW host 100${i}3 __THREADS__
bw __BW__ 0.3 0.5
ns ip link set dev __IFNAME__ mtu 4000
-iperf3c ns __GW__ 100${i}3 __THREADS__ __OPTS__ -b 2G
+iperf3c ns __GW__ 100${i}3 __THREADS__ __OPTS__ -b 3G
iperf3s BW host 100${i}3 __THREADS__
bw __BW__ 0.5 0.8
ns ip link set dev __IFNAME__ mtu 16384
-iperf3c ns __GW__ 100${i}3 __THREADS__ __OPTS__ -b 3G
+iperf3c ns __GW__ 100${i}3 __THREADS__ __OPTS__ -b 4G
iperf3s BW host 100${i}3 __THREADS__
bw __BW__ 3.0 4.0
ns ip link set dev __IFNAME__ mtu 65520
-iperf3c ns __GW__ 100${i}3 __THREADS__ __OPTS__ -b 3G
+iperf3c ns __GW__ 100${i}3 __THREADS__ __OPTS__ -b 6G
iperf3s BW host 100${i}3 __THREADS__
bw __BW__ 6.0 7.0