bsnmpd & BGP full view
hartmut.brandt at dlr.de
Thu Dec 25 20:23:42 UTC 2008
Eugene Grosbein wrote:
> Is there a way to reduce bsnmpd's CPU & memory usage
> for BGP router using full view?
> I do not need to deal with routing table via SNMP.
> SNMP is needed to monitor interface byte counters only via mrtg.
> bsnmpd grows upto 18Mb for FreeBSD 6.4 and worse,
> it hogs CPU while bgpd obtains full view.
Hmm. I just had a look and the version in 6.4 already has the optimized
route table (you may confirm that:
contrib/bsnmp/snmp_mibII/mibII_route.c should include sys/tree.h).
It takes 36 byte per route on a 32-bit machine and should take 52 byte
on a 64-bit one. The only way to reduce memory consumption considerably
that I can see is to use the kernel routing table directly, but this
implement the GETNEXT operation in kernel.
In any case it should re-read the kernel table only every 10 minutes and
in the mean time monitor the routing socket to update its copy of the
table. If of course someone is doing a lot of updates on
the kernel table it will receive all these changes and apply them to its
copy of the routing table. If the latter is a problem you could disable
the routing socket interface and could just rely on the 10
minute re-reads. Between these re-reads you would not see changes to the
routing table through SNMP.
BTW: how many routes do you have? When I introduced the optimized
routing table I tested with 150k routes which was reported to be
reasonable at that time.
More information about the freebsd-net