[ovs-discuss] Poor GRE performance - maybe due to using ip_gre kernel module ?
D3c3 Balus
d3c3balus at gmail.com
Tue Jul 5 11:45:56 UTC 2016
Small update: I have installed the latest OVS from git master (following this https://github.com/openvswitch/ovs/blob/master/INSTALL.Debian.md <https://github.com/openvswitch/ovs/blob/master/INSTALL.Debian.md> - option 2: build packages -> then installed openvswitch-datapath-dkms).
After increasing the MTU on the physical link between the boxes / hypervisors, the iperf tests are still very bad: 3.21 Mbits/sec
Thanks,
DC
> On Jul 4, 2016, at 9:34 PM, D3c3 Balus <d3c3balus at gmail.com> wrote:
>
> Hello,
>
> I’m using 2 Ubuntu Xenial 16.04 LTS with the following:
> - kernel: 4.4.0-28-generic
> - OVS version: 2.5.0 (installed from ubuntu packages: openvswitch-common & openvswitch-switch)
>
> I’m configuring a GRE tunnel between OVS bridges running on each of the machines with:
>
> ovs-vsctl add-port br0 tun0 -- set Interface tun0 type=gre options:remote_ip=x.x.x.x
>
> and I achieve connectivity between VMs, as desired, via the GRE tunnel.
>
>
> Problem: iperf test show really low performance (734 bits/sec !!) considering a baseline that shows almost 1G over the direct link.
>
> Troubleshooting performed:
> 1. increased MTU of the physical link on both sides: `ip link set dev enp0s8 mtu 2000` => same poor perf
> 2. increased MTU of the br0 on both OVS bridges: `ip link set dev br0 mtu 1700` => same poor perf
>
> [FYI: I performed the same operations on an older version of Ubuntu = Trusty 14.04 LTS, kernel 3.13.0-86, and after adjusting the MTU as above, the GRE performance was satisfactory ~ 414 Mbps !! ]
>
> I continued troubleshooting my Ubuntu Xenial 16.04 (kernel 4.4.0-28):
> 3. I noticed that this system has these interfaces gre0 at NONE, gretap0 at NONE, gre_sys at NONE (which did not appear on Ubuntu Trusty 14.04, kernel 3.13.0-86) and realized that Ubuntu Xenial 16.04 uses the linux kernel module ip_gre instead of the one provided by Open vSwitch:
>
> SNAPSHOT from Ubuntu Xenial 16.04 (kernel 4.4.0-28):
> ```
> root at xenial ~$ lsmod | grep gre
> vport_gre 16384 1
> ip_gre 20480 1 vport_gre
> ip_tunnel 28672 1 ip_gre
> gre 16384 1 ip_gre
> openvswitch 98304 3 vport_gre
>
> root at xenial ~$ dmesg | grep gre
> ..
> [ 379.947836] gre: GRE over IPv4 demultiplexor driver
> [ 379.955295] ip_gre: GRE over IPv4 tunneling driver
> [ 379.960352] device gre_sys entered promiscuous mode
> ```
>
> SNAPSHOT from Ubuntu Trusty (kernel 3.13.0-86):
> ```
> root at trusty ~$ lsmod | grep gre
> gre 13796 1 openvswitch
>
> root at trusty ~$ dmesg | grep gre
> [ 9.270743] gre: GRE over IPv4 demultiplexor driver
> root at box-0 ~$
> ```
>
> 3. It seems that latest OVS version uses vport_gre kernel module for GRE and this one depends on Linux GRE module (ip_gre):
>
> ```
> root at xenial ~$ modinfo vport_gre
> filename: /lib/modules/4.4.0-28-generic/kernel/net/openvswitch/vport-gre.ko
> alias: vport-type-3
> license: GPL
> description: OVS: GRE switching port
> srcversion: A4455AB407AE7569E81E791
> depends: openvswitch,ip_gre
> intree: Y
> vermagic: 4.4.0-28-generic SMP mod_unload modversions
> ```
>
>
>
> Questions:
> 1. is this intended - that the latest versions of OVS uses the linux GRE module (instead of its own, as it seem it was the case in the past)?
> 2. I tried stopping OVS and unloading the Linux GRE module - but that was unsuccessful. How should I fix my problem in order to achieve satisfactory level of performance over GRE ?
>
>
> Thank you,
>
>
> DC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20160705/e8147245/attachment-0002.html>
More information about the discuss
mailing list