Linux route caching and busy Bird protocols

Michael Vallaly bird at nolatency.com
Fri Jul 13 08:26:03 CEST 2012


Hello again fellow bird users,

Not sure if anyone has run across this before or not, but poking around
with a couple of bird (1.3.7 and 1.3.3) instances on Linux (2.6 - 3.3),
it seems that something related to bird is flushing the kernel route
cache _very_ frequently?

So quickly in fact that I often don't have _ANY_ cached routes
displayed when running bird (BGP protocol ~400k routes). I noticed this
initially running a simple 'watch -n 1 ip route show cache'.

Is this normal? As soon as I disable the BGP protocols in bird I start
seeing expected cached routes populate for connected networks,
that persist normally for while till they eventually timeout.

Turning on bird with BGP (full feed) all those disappear from the
cache (ip ro sh cache). Interestingly I get different metrics via
lnstat, which seems to indicate there are ~9k routes in the router
cache table while the BGP protocol is running? (though again
aren't displayed by iproute2)

<snip>
lnstat -c -1 -i 1 -f rt_cache -k entries,in_hit,in_slow_tot
rt_cache|rt_cache|rt_cache|
 entries|  in_hit|in_slow_|
        |        |     tot|
    8563|     159|      37|
    8668|     352|      69|
    8725|     297|      42|
    8790|     467|      50|
    8857|     565|      53|
    8929|     393|      62|
    9036|     342|     113|
    9122|     230|      94|
    9186|     281|      66|
    9340|     545|      89|
</snip>

Maybe this is a cosmetic issue with iproute2? or reason for concern (I
should be tweaking the route cache GC)? I would hope adding/removing a
dynamic route from the kernel routing tables shouldn't invalidate the
entire route cache should it?

Thanks for your time, I really appreciate all the work that goes
into making Bird great.

-Mike

-- 
Michael Vallaly <bird at nolatency.com>



More information about the Bird-users mailing list