show memory question
Maria Matejka
maria.matejka at nic.cz
Mon Jan 25 10:15:00 CET 2021
Hello!
My first thought would be that BIRD called free() on that memory, not
necessarily returning the memory back to the kernel.
This may change in some new versions with changing at least some of the
memory allocations to mmap/munmap. This should help a lot with this
specific problem, anyway it is not going to happen in the next version.
It may also sometimes be possible to run reconfiguration several times
to trigger the LibC's internal memory release algorithms, anyway all of
this magic is mostly just a cargo cult.
Maria
On 1/25/21 8:08 AM, Alarig Le Lay wrote:
> Hi,
>
> On one of my routers, I needed to free some RAM temporally, so I shut
> all my BGP sessions. With `birdc show memory` I saw that it should have
> worked, however htop was still seeing 1.2G used by bird.
>
> 5311 root 20 0 1296M 1220M 1724 S 0.0 61.1 59h01:29 ├─ /usr/sbin/bird -s /run/bird.ctl -c /etc/bird.conf -
> 5314 root 20 0 1296M 1220M 1724 S 0.7 61.1 6h31:09 │ └─ /usr/sbin/bird -s /run/bird.ctl -c /etc/bird.con
>
> bird> show memory
> BIRD memory usage
> Routing tables: 49 MB
> Route attributes: 842 kB
> Protocols: 300 kB
> Total: 50 MB
>
>
> So, I added the `disabled` option to my sessions and restarted bird, and
> then birdc and htop were almost consistent.
>
> 25724 root 20 0 107M 32600 2224 S 0.7 1.6 0:00.62 ├─ /usr/sbin/bird -s /run/bird.ctl -c /etc/bird.conf -
> 25726 root 20 0 107M 32600 2224 S 0.7 1.6 0:00.16 │ └─ /usr/sbin/bird -s /run/bird.ctl -c /etc/bird.con
>
> bird> show memory
> BIRD memory usage
> Routing tables: 28 MB
> Route attributes: 46 kB
> Protocols: 304 kB
> Total: 29 MB
>
>
> When I re-enabled the BGP sessions, the RAM utilisation was a bit lower
> (the original process was two months old).
>
> 25724 root 20 0 1147M 1072M 2072 R 1.3 53.7 2:33.80 ├─ /usr/sbin/bird -s /run/bird.ctl -c /etc/bird.conf -
> 25726 root 20 0 1147M 1072M 2072 S 0.7 53.7 0:07.84 │ └─ /usr/sbin/bird -s /run/bird.ctl -c /etc/bird.con
>
> bird> show memory
> BIRD memory usage
> Routing tables: 399 MB
> Route attributes: 528 MB
> Protocols: 102 MB
> Total: 1029 MB
>
> Perhaps bird thinks that some RAM has been freed while it’s not actually
> the case?
>
More information about the Bird-users
mailing list