every minute: "I/O loop cycle took .... ms for 2 events"

Maria Matějka jan.matejka at nic.cz
Mon Sep 30 07:44:56 CEST 2019



On September 29, 2019 2:13:00 PM GMT+02:00, Christoph <cm at appliedprivacy.net> wrote:
>> This means there are events that take 6 s, possibly postponing other
>> events. May cause problems if you would run some protocols configured
>> with tight timers (e.g. OSPF set to 5 s dead interval).
>> 
>> This is probably kernel table sync. Do you export full BGP to
>> kernel? Is this on BSD?
>
>Yes this is on a system doing fulltable BGP exports to kernel
>on FreeBSD 12 (BIRD 2.0.6).
>
>Is there anything that we can change in the configuration
>to mitigate this issue or should we just ignore it?
>Or is this a bug in BIRD 2?

BIRD reads the kernel table on FreeBSD in one syscall which fills a huge array with all routes at once. (Is there any better choice?) This syscall eats several seconds uninterruptibly. The reading is needed as BIRD checks that the kernel table matches the BIRD table.

The solution for this will be multithreaded execution which is currently being developed (for more reasons than BSD route sync). Then one thread could wait for the kernel export without blocking whole the now-singlethreaded daemon. 

Maria



More information about the Bird-users mailing list