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