mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Nest: Improve GC strategy for rtables
Use timer (configurable as 'gc period') to schedule routing table GC/pruning to ensure that prune is done on time but not too often. Randomize GC timers to avoid concentration of GC events from different tables in one loop cycle. Fix a bug that caused minimum inter-GC interval be 5 us instead of 5 s. Make default 'gc period' adaptive based on number of routing tables, from 10 s for small setups to 600 s for large ones. In marge multi-table RS setup, the patch improved time of flushing a downed peer from 20-30 min to <2 min and removed 40s latencies.
This commit is contained in:
@@ -684,6 +684,21 @@ to set options.
|
||||
limit to the settle time from the initial ROA table change even if
|
||||
there are consecutive updates gradually renewing the settle time.
|
||||
Default: 20 s.
|
||||
|
||||
<tag><label id="rtable-gc-threshold">gc threshold <m/number/</tag>
|
||||
Specify a minimum amount of removed networks that triggers a garbage
|
||||
collection (GC) cycle. Default: 1000.
|
||||
|
||||
<tag><label id="rtable-gc-period">gc period <m/time/</tag>
|
||||
Specify a period of time between consecutive GC cycles. When there is a
|
||||
significant amount of route withdraws, GC cycles are executed repeatedly
|
||||
with given period time (with some random factor). When there is just
|
||||
small amount of changes, GC cycles are not executed. In extensive route
|
||||
server setups, running GC on hundreds of full BGP routing tables can
|
||||
take significant amount of time, therefore they should use higher GC
|
||||
periods. Default: adaptive, based on number of routing tables in the
|
||||
configuration. From 10 s (with <= 25 routing tables) up to 600 s (with
|
||||
>= 1500 routing tables).
|
||||
</descrip>
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user