ON THIS PAGE
Sharding and UpdateIO on cRPD
Understanding Sharding
The BGP process is split into different threads so that they can run concurrently on a multicore routing engine through RIB sharding which results in reduced convergence time and faster performance. BGP RIB sharding splits a BGP RIB into several sub RIBs and each sub RIB handles a subset of BGP routes. Each sub RIB is served by a separate RPD thread to achieve parallel processing.
BGP RIB sharding is disabled by default. This feature is supported only on 64-bit routing protocol process (rpd) where the Routing Engine has more than one core. We recommend configuring this feature on a device with atleast 4CPU cores and 16GB of memory.
If you configure rib-sharding on a routing engine, RPD will create sharding threads. By default the number of sharding threads created is same as the number of CPU cores on the routing engine. Optionally, you can specify the number-of-shards you want to create. The range is currently 1 through 31.
BGP RIB sharding on crpd is supported for inet.0
and inet6.0
as well as bgp.l3vpn.0
, bgp.l3vpn-inet6.0
and bgp.rtarget
, inet-vpn
, inet6-vpn
unicast
, and route-target
tables.
To enable this feature, you can configure rib-sharding
at the edit system processes routing bgp
hierarchy level.
Sharding is dependent on the UpdateIO thread feature. Therefore, UpdateIO
thread feature is mandatory when you configure sharding. To enable
updateIO, you need to configure update-threading
at the [edit system processes routing bgp]
hierarchy level for rib-sharding
configuration to pass commit check.
See Also
Understanding UpdateIO
The BGP protocol work to do Update message generation for peers in a BGP group. The BGP work in main RPD thread is split into different threads, called BGP UpdateIO threads. Each UpdateIO thread is responsible for generating updates for one or more BGP peer groups. BGP Update threads construct updates for groups in parallel and independent of other groups that are being serviced by different update threads.
This might offer significant convergence improvement in a write-heavy workload that involves advertising to many peers spread across many groups. BGP UpdateIO threads can be configured independent of RIB sharding feature but are mandatory to use with RIB sharding as they help improve packing of prefixes in outbound BGP update messages and thus help improve performance.
BGP update thread is disabled by default. If you configure update-threading
on a routing engine, RPD creates update threads. By default, the number
of update threads created is the same as the number of CPU cores on
the routing engine. Update threading is only supported on a 64 bit
routing protocol process (RPD). Optionally, you can specify the number-of-threads
you want to create by using set update-threading <number-of-threads>
statement at the edit system processes routing bgp
hierarchy
level. The range is currently 1 through 128.