[dev] A route-map scaling improvement that has just gone in.
Donald Sharp
sharpd at cumulusnetworks.com
Wed Aug 22 17:59:57 EDT 2018
All -
This morning, PR #2818 (https://github.com/FRRouting/frr/pulls/2818)
was merged into the FRR master code base. This fixes Issue
#2493(https://github.com/FRRouting/frr/issues/2493), where zebra was
causing significant processing for route-map changes being made
to the system in both BGP and Zebra.
Here are some timings:
Pre-route-map #2818 improvements for ZEBRA:
ZEBRA:
Total thread statistics
-------------------------
CPU (user+system): Real (wall-clock):
Active Runtime(ms) Invoked Avg uSec Max uSecs Avg uSec Max uSecs
Type Thread
12 22568.749 121924 185 160855 162 414190 RWTEX TOTAL
BGP:
Total thread statistics
-------------------------
CPU (user+system): Real (wall-clock):
Active Runtime(ms) Invoked Avg uSec Max uSecs Avg uSec Max uSecs
Type Thread
10 31159.647 121679 256 117558 220 117713 RWTEX TOTAL
Create a Unused route-map:
robot# conf t
robot(config)# route-map BLAR permit 10
robot(config-route-map)# end
ZEBRA:
Total thread statistics
-------------------------
CPU (user+system): Real (wall-clock):
Active Runtime(ms) Invoked Avg uSec Max uSecs Avg uSec Max uSecs
Type Thread
12 40671.587 136545 297 214461 226 414190 RWTEX TOTAL
BGP:
Total thread statistics
-------------------------
CPU (user+system): Real (wall-clock):
Active Runtime(ms) Invoked Avg uSec Max uSecs Avg uSec Max uSecs
Type Thread
10 32043.610 122392 261 117558 227 117713 RWTEX TOTAL
This is aproximately 19 cpu seconds split between BGP and zebra to
handle a full BGP feed for a route-map change that no-process is
currently using.
After-route-map (#2818) improvements for ZEBRA:
ZEBRA:
Total thread statistics
-------------------------
CPU (user+system): Real (wall-clock):
Active Runtime(ms) Invoked Avg uSec Max uSecs Avg uSec Max uSecs
Type Thread
11 11592.894 1216075 9 152939 5 120621 RWTEX TOTAL
BGP:
Total thread statistics
-------------------------
CPU (user+system): Real (wall-clock):
Active Runtime(ms) Invoked Avg uSec Max uSecs Avg uSec Max uSecs
Type Thread
9 8306.451 40216 206 116589 193 116801 RWTEX TOTAL
Create a Unused route-map:
robot# conf t
robot(config)# route-map BLAR permit 10
robot(config-route-map)# end
Total thread statistics
-------------------------
CPU (user+system): Real (wall-clock):
Active Runtime(ms) Invoked Avg uSec Max uSecs Avg uSec Max uSecs
Type Thread
11 11596.799 1216183 9 152939 5 120621 RWTEX TOTAL
Total thread statistics
-------------------------
CPU (user+system): Real (wall-clock):
Active Runtime(ms) Invoked Avg uSec Max uSecs Avg uSec Max uSecs
Type Thread
9 8320.976 40365 206 116589 193 116801 RWTEX TOTAL
This adds up to negligible amounts of cpu time.
This is a wonderful improvement in processing of route-map changes for
zebra( and consequentially for bgp ). I'd like to thank Soman for
doing this work.
thanks!
donald
More information about the dev
mailing list