[Xorp-hackers] FEA performance improvements: only 'pull' active interfaces.
Ben Greear
greearb at candelatech.com
Thu Mar 13 09:28:36 PDT 2008
As previously mentioned, I notice that fea pays attention to all
interfaces, not just those
it's configured to use.
To help improve scalability, especially in a virtualized environement, I
am attempting
the following:
1) Only have the _pulled_config pull information for devices stored in
the _local_config
tree. This means asking netlink for specific if-index values instead of
the entire tree.
2) The netlink observer will ignore anything not in the _local_config,
and will remove
interfaces from _local_config if it observes them unregistering from the
system.
3) When adding an interface (though XRL), the ifconfig object will add
it to _local_config,
tell the pulled_config to pull it from the system, and if found, will
save it in the _original_config
as well in case we want to roll back to the original system state. Once
added, nothing is removed
from the _original_config.
4) There is an XRL method to configure all interfaces from the system.
I am hoping this isn't
actually needed and can be removed, as it would require reading the
entire set of interfaces. I
can (re)add code to support this if needed, but maybe it isn't really
useful and could be removed?
I am only implementing the optimizations for the netlink related
portions. The remainder of the iftree-get/set logic
will use the current method of reading all interfaces regardless of
local config.
I believe this will go a long way towards helping fea scale to 1000+
interfaces, but don't have performance
numbers or working code quite yet.
Thanks,
Ben
--
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc http://www.candelatech.com
More information about the Xorp-hackers
mailing list