Difference in TCP throughput in comparison to OVS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Following the XDP tutorial on GitHub, we ran some tests comparing the setup from
the “redirecting packets” section and a basic OVS setup.
(Specifically packet03-redirecting/Assignment3: Extend to a bidirectional router)

In our test, we collected the numbers below.
For the OVS setup. we saw TCP throughput at around 90 Gbits/sec.
For the XDP setup, we saw TCP throughput at around 9 Gbits/sec.

On the OVS side we had the following
- Two veth devices each assigned to their own unique network namespace.
- Both veth devices added to an ovs-bridge.
- iperf2 between the two veth devices.

Similarly, for the XDP setup, we followed the instructions from packet03-redirecting/Assignment3.
Differences highlighted below:
- We had to disable rx and tx checksumming to get TCP to work.
- ethtool --offload veth0 rx off tx off
- We disabled BPF tracing.
- iperf2 between the two veth devices.

Questions:
1. Why is there a TCP throughput difference between these two setups?
2. Why do we need to disable rx and tx checksumming?
a. Disabling rx and tx checksumming brought OVS throughput down to 22 Gbits/sec.
b. Is there anything in the veth driver that needs to be improved to enable this?

Setup:
Both tests were ran on a single AWS instance.
AWS instance: t2.2xlarge.
OS: Ubuntu 18.04, kernel version 5.6-rc2

Code
We have included the scripts we used for our setup in the GitHub fork below.
- setup_xdp.sh
- setup_ovs.sh
Changes:
- Disable BPF tracing.
- Added solution for packet03-redirecting/Assignment3.
- Added scripts to run OVS, and XDP redirect map benchmarks with iperf.
https://github.com/zasherif/xdp-tutorial/tree/redirect-bench/packet03-redirecting

Thank you, Phu




[Index of Archives]     [Linux Networking Development]     [Fedora Linux Users]     [Linux SCTP]     [DCCP]     [Gimp]     [Yosemite Campsites]

  Powered by Linux