← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1264608] [NEW] openvswitch agent plugin should execute batched ovs-vsctl CLI statements on __init__()

 

Public bug reported:

When restarting neutron-plugin-openvswitch-agent, the plugin goes
through a series of initialization calls, many of which call out to ovs-
vsctl to set up things like the integration bridge, tun bridge and all
the flows.

I've seen this __init__() process take upwards of 2 hours (!) to
complete on a small (<100 compute node) zone. Most of the time is spent
spawning rootwrap'd calls to ovs-vsctl to set up the various tunnels,
flows and bridges.

ovs-vsctl can take a series of action arguments in the same CLI
statement, and will perform those actions as an atomic unit. At the very
least, the plugin's __init__() function's setup_xxx() subroutines should
take advantages of this instead of looping over possibly dozens or
hundreds of port and flows, each with a separate subprocess call out to
utils.execute('ovs.vsctl...').

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: low-hanging-fruit performance

** Summary changed:

- openvswitch agent plugin should execute a single ovs-vsctl CLI statement on __init__()
+ openvswitch agent plugin should execute batched ovs-vsctl CLI statements on __init__()

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1264608

Title:
  openvswitch agent plugin should execute batched ovs-vsctl CLI
  statements on __init__()

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  When restarting neutron-plugin-openvswitch-agent, the plugin goes
  through a series of initialization calls, many of which call out to
  ovs-vsctl to set up things like the integration bridge, tun bridge and
  all the flows.

  I've seen this __init__() process take upwards of 2 hours (!) to
  complete on a small (<100 compute node) zone. Most of the time is
  spent spawning rootwrap'd calls to ovs-vsctl to set up the various
  tunnels, flows and bridges.

  ovs-vsctl can take a series of action arguments in the same CLI
  statement, and will perform those actions as an atomic unit. At the
  very least, the plugin's __init__() function's setup_xxx() subroutines
  should take advantages of this instead of looping over possibly dozens
  or hundreds of port and flows, each with a separate subprocess call
  out to utils.execute('ovs.vsctl...').

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1264608/+subscriptions


Follow ups

References