A route-map scaling improvement that has just gone in.
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
participants (1)
-
Donald Sharp