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>
This commit is contained in:
parent
1f3d6f96b5
commit
c3f8e4d2cd
3 changed files with 34 additions and 31 deletions
|
@ -13,9 +13,9 @@
|
||||||
# Copyright (c) 2021 Red Hat GmbH
|
# Copyright (c) 2021 Red Hat GmbH
|
||||||
# Author: Stefano Brivio <sbrivio@redhat.com>
|
# 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)"
|
__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() - Set up pane layout for build tests
|
||||||
setup_build() {
|
setup_build() {
|
||||||
|
@ -107,6 +107,9 @@ setup_passt_in_ns() {
|
||||||
# 10011 as server | forwarded to guest | spliced to ns
|
# 10011 as server | forwarded to guest | spliced to ns
|
||||||
# 10012 | as server | spliced to ns
|
# 10012 | as server | spliced to ns
|
||||||
# 10013 | spliced to init | as server
|
# 10013 | spliced to init | as server
|
||||||
|
#
|
||||||
|
# 10021 as server | forwarded to guest |
|
||||||
|
# 10031 as server | forwarded to guest |
|
||||||
|
|
||||||
__opts=
|
__opts=
|
||||||
[ ${PCAP} -eq 1 ] && __opts="${__opts} -p /tmp/pasta_with_passt.pcap"
|
[ ${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"
|
[ ${PCAP} -eq 1 ] && __opts="${__opts} -p /tmp/passt_in_pasta.pcap"
|
||||||
[ ${DEBUG} -eq 1 ] && __opts="${__opts} -d"
|
[ ${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 "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 -u 10001,10011"
|
pane_run PASST "./passt -f ${__opts} -t 10001,10011,10021,10031 -u 10001,10011,10021,10031"
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
pane_run GUEST './qrap 5 kvm -m '${VMEM}' -cpu host -smp '${VCPUS} \
|
pane_run GUEST './qrap 5 kvm -m '${VMEM}' -cpu host -smp '${VCPUS} \
|
||||||
|
@ -148,7 +151,7 @@ setup_passt_in_ns() {
|
||||||
'-nodefaults ' \
|
'-nodefaults ' \
|
||||||
'-append "console=ttyS0 mitigations=off apparmor=0 ' \
|
'-append "console=ttyS0 mitigations=off apparmor=0 ' \
|
||||||
'virtio-net.napi_tx=1"' \
|
'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"
|
"-netdev socket,fd=5,id=hostnet0"
|
||||||
pane_wait GUEST
|
pane_wait GUEST
|
||||||
}
|
}
|
||||||
|
|
|
@ -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_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__
|
hout FREQ [ -n "__FREQ_CPUFREQ__" ] && echo __FREQ_CPUFREQ__ || echo __FREQ_PROCFS__
|
||||||
|
|
||||||
set THREADS 2
|
set THREADS 4
|
||||||
set STREAMS 1
|
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
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 0.8 1.2
|
bw __BW__ 0.8 1.2
|
||||||
guest ip link set dev __IFNAME__ mtu 1500
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 1.0 1.5
|
bw __BW__ 1.0 1.5
|
||||||
guest ip link set dev __IFNAME__ mtu 9000
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 4.0 5.0
|
bw __BW__ 4.0 5.0
|
||||||
guest ip link set dev __IFNAME__ mtu 65520
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 4.0 5.0
|
bw __BW__ 4.0 5.0
|
||||||
|
|
||||||
|
@ -75,11 +75,11 @@ lat __LAT__ 200 150
|
||||||
|
|
||||||
tr UDP throughput over IPv4: guest to host
|
tr UDP throughput over IPv4: guest to host
|
||||||
guest ip link set dev __IFNAME__ mtu 256
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 0.1 0.2
|
bw __BW__ 0.1 0.2
|
||||||
guest ip link set dev __IFNAME__ mtu 576
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 0.4 0.6
|
bw __BW__ 0.4 0.6
|
||||||
guest ip link set dev __IFNAME__ mtu 1280
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 0.8 1.2
|
bw __BW__ 0.8 1.2
|
||||||
guest ip link set dev __IFNAME__ mtu 1500
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 1.0 1.5
|
bw __BW__ 1.0 1.5
|
||||||
guest ip link set dev __IFNAME__ mtu 9000
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 4.0 5.0
|
bw __BW__ 4.0 5.0
|
||||||
guest ip link set dev __IFNAME__ mtu 65520
|
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__
|
iperf3s BW ns 100${i}2 __THREADS__
|
||||||
bw __BW__ 4.0 5.0
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 1.0 1.5
|
bw __BW__ 1.0 1.5
|
||||||
ns ip link set dev lo mtu 9000
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 4.0 5.0
|
bw __BW__ 4.0 5.0
|
||||||
ns ip link set dev lo mtu 65520
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 5.0 5.5
|
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
|
tr UDP throughput over IPv4: host to guest
|
||||||
ns ip link set dev lo mtu 256
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 0.1 0.2
|
bw __BW__ 0.1 0.2
|
||||||
ns ip link set dev lo mtu 576
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 0.4 0.6
|
bw __BW__ 0.4 0.6
|
||||||
ns ip link set dev lo mtu 1280
|
ns ip link set dev lo mtu 1280
|
||||||
ns ip addr add ::1 dev lo
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 0.8 1.2
|
bw __BW__ 0.8 1.2
|
||||||
ns ip link set dev lo mtu 1500
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 1.0 1.5
|
bw __BW__ 1.0 1.5
|
||||||
ns ip link set dev lo mtu 9000
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 4.0 5.0
|
bw __BW__ 4.0 5.0
|
||||||
ns ip link set dev lo mtu 65520
|
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__
|
iperf3s BW guest 100${i}1 __THREADS__
|
||||||
bw __BW__ 5.0 5.5
|
bw __BW__ 5.0 5.5
|
||||||
|
|
||||||
|
|
|
@ -141,19 +141,19 @@ th MTU 1500B 4000B 16384B 65520B
|
||||||
|
|
||||||
tr UDP throughput over IPv6: ns to host
|
tr UDP throughput over IPv6: ns to host
|
||||||
ns ip link set dev __IFNAME__ mtu 1500
|
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__
|
iperf3s BW host 100${i}3 __THREADS__
|
||||||
bw __BW__ 0.3 0.5
|
bw __BW__ 0.3 0.5
|
||||||
ns ip link set dev __IFNAME__ mtu 4000
|
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__
|
iperf3s BW host 100${i}3 __THREADS__
|
||||||
bw __BW__ 0.5 0.8
|
bw __BW__ 0.5 0.8
|
||||||
ns ip link set dev __IFNAME__ mtu 16384
|
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__
|
iperf3s BW host 100${i}3 __THREADS__
|
||||||
bw __BW__ 3.0 4.0
|
bw __BW__ 3.0 4.0
|
||||||
ns ip link set dev __IFNAME__ mtu 65520
|
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__
|
iperf3s BW host 100${i}3 __THREADS__
|
||||||
bw __BW__ 6.0 7.0
|
bw __BW__ 6.0 7.0
|
||||||
|
|
||||||
|
@ -169,19 +169,19 @@ lat __LAT__ 200 150
|
||||||
|
|
||||||
tr UDP throughput over IPv4: ns to host
|
tr UDP throughput over IPv4: ns to host
|
||||||
ns ip link set dev __IFNAME__ mtu 1500
|
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__
|
iperf3s BW host 100${i}3 __THREADS__
|
||||||
bw __BW__ 0.3 0.5
|
bw __BW__ 0.3 0.5
|
||||||
ns ip link set dev __IFNAME__ mtu 4000
|
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__
|
iperf3s BW host 100${i}3 __THREADS__
|
||||||
bw __BW__ 0.5 0.8
|
bw __BW__ 0.5 0.8
|
||||||
ns ip link set dev __IFNAME__ mtu 16384
|
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__
|
iperf3s BW host 100${i}3 __THREADS__
|
||||||
bw __BW__ 3.0 4.0
|
bw __BW__ 3.0 4.0
|
||||||
ns ip link set dev __IFNAME__ mtu 65520
|
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__
|
iperf3s BW host 100${i}3 __THREADS__
|
||||||
bw __BW__ 6.0 7.0
|
bw __BW__ 6.0 7.0
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue