bird under heavy cpu load
Alexander V. Chernikov
melifaro at ipfw.ru
Tue Mar 13 12:15:18 CET 2012
On 12.03.2012 20:06, Martin Mares wrote:
> Hello!
>
>>> It is very costy and one (developer) possibility is to add
>>> additional thread which does kernel interaction.
>>
>> I think that a separate thread can solve this nuisance.
>
> ... at the cost of introducing lots of extra complexity.
>
> I think that deferring kernel route updates (and maybe even
> propagation of routes to all protocols) to a separate event
> handler should help.
This can help CLI interaction (and it is good as temporary solution),
but does not decrease time needed for dispatching flapping sessions
(particularly if there are many of them). (This is one of the things
quagga suffers from). Syncing all routes make bird spend 2-3 times more
in FreeBSD, the same order of magnitude applies for Linux, i guess.
Offloading some activity with low core interaction to another thread can
be a good start for offloading another parts of code (protocol messages
parsing, sending hello messages, etc..).
Moreover, this approach can improve the situation with kernel scan
(which requires preparing and sending 100-150 Mb of data from kernel to
userland and parsing it) so we stops all network processing for tens of
hundreds of milliseconds which can be a significant issue for BFD (if,
someday, it gets implemented)
>
> Have a nice fortnight
More information about the Bird-users
mailing list