[ovs-discuss] OVS 2.5.1 high CPU load when running full table BGP sessions

Ben Pfaff blp at ovn.org
Wed Nov 23 18:03:35 UTC 2016

On Wed, Nov 23, 2016 at 11:27:11AM +0100, Petr Marciniak wrote:
> On 22.11.2016 23:23, Ben Pfaff wrote:
> >On Sun, Nov 20, 2016 at 01:47:41PM +0100, petr at datapath.io wrote:
> >>We're running an OVS 2.5.1 switch on a server which also maintains
> >>couple of BGP sessions (Quagga) for IP transit each receiving full table.
> >>
> >>As soon as routes learned from Quagga propagate into the kernel routing
> >>table OVS goes on 100% CPU. It seems that it is learning/caching all the
> >>routes from kernel for itself.
> >>
> >>Is there any way to disable this functionality? We solved this problem
> >>by downgrading to 2.3.1, but do not want to downgrade kernel versions.
> >
> >We can't tell what OVS is actually doing without more information.
> >What's showing up in the logs?
> >
> Unfortunately, I don't have the log messages at hand anymore.
> It seems that OVS was syncing its own routing table with the kernel routing
> table. Since we were pushing 3x600k routes into kernel it triggered a
> constant flow of events for OVS. This in turn led to OVS running on 100%
> CPU.


We'd accept patches to improve OVS's routing table code.  It's not
designed to scale to 1,800,000 routes.  We'd also take code to suppress
the routing table code in cases where it isn't actually needed, since
it's not always needed.  But we can't take a patch to just delete it;
I'm sure you understand.

More information about the discuss mailing list