<div dir="ltr">Hi.<div><br></div><div>1.3.7 is running on the older server and has no issues. It's the 1.4.0 install that's having the issue.</div><div><br></div><div>I've just rebuilt my VPS as its still bare and the provider now has Debian 8 available. I've now installed that. This comes with bird 1.4.5 so I'll see how it goes today.</div><div><br></div><div><br></div><div>To answer the questions above:</div><div>CPU is hardly used at all. I have access to four cores and most of the time they are < 1%</div><div>Server has 2GB RAM and I'm currently using 746MB of it.</div><div><br></div><div>I have 7 full IPv4 peer and 7 full IPv6 peers so route count is as follows:</div><div><br></div><div><div>root@bird:/etc/bird# birdc 'show route count'</div><div>BIRD 1.4.5 ready.</div><div>4290064 of 4290064 routes for 554557 networks</div><div>root@bird:/etc/bird# birdc6 'show route count'</div><div>BIRD 1.4.5 ready.</div><div>179722 of 179722 routes for 22814 networks</div></div><div><br></div><div><br></div><div>ulimit is sent to unlimited. </div><div><br></div><div>More info on mem usage:</div><div><div>root@bird:/etc/bird# birdc 'show mem'</div><div>BIRD 1.4.5 ready.</div><div>BIRD memory usage</div><div>Routing tables:    395 MB</div><div>Route attributes:  275 MB</div><div>ROA tables:        192  B</div><div>Protocols:          50 kB</div><div>Total:             669 MB</div><div>root@bird:/etc/bird# birdc6 'show mem'</div><div>BIRD 1.4.5 ready.</div><div>BIRD memory usage</div><div>Routing tables:     17 MB</div><div>Route attributes:   43 MB</div><div>ROA tables:        192  B</div><div>Protocols:          51 kB</div><div>Total:              60 MB</div></div><div><br></div><div><br></div><div>Config-wise this is what it looks like, I've just changed IPs and passwords. All my peers are set up exactly the same:</div><div><br></div><div><div>log syslog all;</div><div><br></div><div>router id x.x.x.x;</div><div><br></div><div>protocol device { }</div><div><br></div><div>protocol kernel {</div><div>    export none;</div><div>    import none;</div><div>}</div><div><br></div><div>function unwanted_bgp_routes()</div><div>prefix set unwanted; {</div><div>    unwanted = [ <a href="http://169.254.0.0/16+">169.254.0.0/16+</a>, <a href="http://172.16.0.0/12+">172.16.0.0/12+</a>, <a href="http://192.168.0.0/16+">192.168.0.0/16+</a>, <a href="http://10.0.0.0/8+">10.0.0.0/8+</a>, <a href="http://224.0.0.0/4+">224.0.0.0/4+</a>, <a href="http://240.0.0.0/4+">240.0.0.0/4+</a> ];</div><div>    if net.ip = 0.0.0.0 then return true;</div><div>    if net.len <8 then return true;</div><div>    if net.len >24 then return true;</div><div>    if net ~ unwanted then return true;</div><div>    if ( bgp_path.len > 45 ) then return true;</div><div>    return false;</div><div>}</div><div><br></div><div>filter bgp_in {</div><div>    if unwanted_bgp_routes() then {</div><div>            reject;</div><div>    }</div><div>    else {</div><div>            accept;</div><div>    }</div><div>}</div><div><br></div><div>protocol bgp PEER1 {</div><div>    local as 64533;<br></div><div>    neighbor x.x.x.x as x;</div><div>    multihop;</div><div>    password "xxxx";</div><div>    import keep filtered;</div><div>    import filter bgp_in;</div><div>}</div></div><div><br></div><div><br></div><div><br></div><div><br></div><div><div>log syslog all;</div><div><br></div><div>router id x.x.x.x;</div><div><br></div><div>protocol device { }</div><div><br></div><div>function wanted_prefixes()</div><div>prefix set wanted; {</div><div>    wanted = [ 2001:0::/32, 2001:200::/23{23,48}, 2001:400::/23{23,48}, 2001:600::/23{23,48}, 2001:800::/23{23,48},</div><div>               2001:A00::/23{23,48}, 2001:C00::/23{23,48}, 2001:E00::/23{23,48}, 2001:1200::/23{23,48}, 2001:1400::/23{23,48},</div><div>               2001:1600::/23{23,48}, 2001:1800::/23{23,48}, 2001:1A00::/23{23,48}, 2001:1C00::/22{22,48}, 2001:2000::/20{20,48},</div><div>               2001:3000::/21{21,48}, 2001:3800::/22{22,48}, 2001:4000::/23{23,48}, 2001:4200::/23{23,48}, 2001:4400::/23{23,48},</div><div>               2001:4600::/23{23,48}, 2001:4800::/23{23,48}, 2001:4A00::/23{23,48}, 2001:4C00::/23{23,48}, 2001:5000::/20{20,48},</div><div>               2001:8000::/19{19,48}, 2001:A000::/20{20,48}, 2001:B000::/20{20,48}, 2002:0000::/16{16,48}, 2003:0000::/18{18,48},</div><div>               2400:0000::/12{12,48}, 2600:0000::/12{12,48}, 2610:0000::/23{23,48}, 2620:0000::/23{23,48}, 2800:0000::/12{12,48},</div><div>               2A00:0000::/12{12,48}, 2C00:0000::/12{12,48} ];</div><div>    if net ~ wanted then return true;</div><div>    return false;</div><div>}</div><div><br></div><div>function unwanted_prefixes()</div><div>prefix set unwanted; {</div><div>    unwanted = [ 2001:db8::/32+, ::/0{49,128} ];</div><div>    if net ~ unwanted then return true;</div><div>    if ( bgp_path.len > 45 ) then return true;</div><div>    return false;</div><div>}</div><div><br></div><div><br></div><div>filter bgp_in {</div><div>    if unwanted_prefixes() then reject;</div><div>    if wanted_prefixes() then accept;</div><div>    else reject;</div><div>}</div><div><br></div><div>protocol kernel {</div><div>    export none;</div><div>    import none;</div><div>}</div></div><div><br></div><div><div>protocol bgp PEER1 {</div><div>    local as 64533;<br></div><div>    neighbor xxx:xxxx::x as x;</div><div>    source address xxx:xxx::x;</div><div>    password "xxx";</div><div>    multihop;</div><div>    import keep filtered;</div><div>    import filter bgp_in;</div><div>}</div></div><div><br></div><div><br></div><div>As for the behaviour. I noticed that when it stalls, even doing a 'show mem' will sit for about 10 seconds before giving me a result. But at that time I don't see high CPU or MEM usage</div><div><br></div><div><br></div><div>Thanks</div><div><br></div><div>Darren</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 25 June 2015 at 09:54, Ondrej Zajicek <span dir="ltr"><<a href="mailto:santiago@crfreenet.org" target="_blank">santiago@crfreenet.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Jun 24, 2015 at 09:29:08AM +0100, Darren O'Connor wrote:<br>
> Hi.<br>
><br>
> I run bird 1.3.7 on a Debian VPS which peers with three IPv4 peers and<br>
> three IPv6 peers. I have no data plane traffic, as I use these peers to run<br>
> these two twitter accounts:<br>
> <a href="https://twitter.com/bgp4_table" rel="noreferrer" target="_blank">https://twitter.com/bgp4_table</a><br>
> <a href="https://twitter.com/bgp6_table" rel="noreferrer" target="_blank">https://twitter.com/bgp6_table</a><br>
><br>
> I needed more peers, so I moved to a new VPS with 2GB ram. The previous<br>
> only had 1GB.<br>
><br>
> I have have 7 global IPv4 peers and 7 IPv6 peers. I'm running bird 1.4.0 on<br>
> Ubuntu 14.04 - I've noticed that if I leave it for about an hour, and then<br>
> log into birdc and type 'show route count' - bird will stall for about a<br>
> minute giving no response. At that time, if I check netstat my Recv-Q<br>
> rapidly increases on all my BGP sessions.<br>
<br>
</span>Hi<br>
<br>
Well, try version 1.5.0 (or at least 1.4.5), version 1.3.7 is just too old.<br>
<br>
I would also suggest to check free memory and swapping (and if the<br>
process is running, sleeping or in IO-wait state). 'show route count'<br>
would read the whole routing table, so if the VPS is somewhat<br>
overcommited and is swapping, reading whole table could be slow.<br>
<br>
You could also try to do 'show route' instead of 'show route count' to<br>
see if the behavior is the same and what is reported during it.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Elen sila lumenn' omentielvo<br>
<br>
Ondrej 'Santiago' Zajicek (email: <a href="mailto:santiago@crfreenet.org">santiago@crfreenet.org</a>)<br>
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, <a href="http://wwwkeys.pgp.net" rel="noreferrer" target="_blank">wwwkeys.pgp.net</a>)<br>
"To err is human -- to blame it on a computer is even more so."<br>
</font></span><br>-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.9 (GNU/Linux)<br>
<br>
iEYEARECAAYFAlWLwbAACgkQw1GB2RHercPagwCcD5uWAkfRq/wZS/vortzEjlIL<br>
M+oAniMZWJ4AlnbMIiaXqo/75QyK+xuJ<br>
=pTk/<br>
-----END PGP SIGNATURE-----<br>
<br></blockquote></div><br></div>