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

Petr Marciniak petr at datapath.io
Thu Nov 24 09:45:07 UTC 2016


Hi Ben,

On 23.11.2016 19:03, Ben Pfaff wrote:
> 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.
>
> OK.
>
> 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.
>

Of course, it was not intended to be included in OVS. For now it's just 
a quick fix for us, but I thought someone might find it useful anyway.

Petr





More information about the discuss mailing list