← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1558101] Re: Neutron performance degradation when multiple subnets attached to same router

 

Reviewed:  https://review.openstack.org/293976
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=9355885d7dab41e48a8ecaaf59b1bd3835f17f27
Submitter: Jenkins
Branch:    master

commit 9355885d7dab41e48a8ecaaf59b1bd3835f17f27
Author: Kevin Benton <kevin@xxxxxxxxxx>
Date:   Wed Mar 16 10:43:25 2016 -0700

    Fetch router port subnets in bulk
    
    When a router port is being attached to a network it
    must first check that the new subnet(s) do not overlap
    with any of the other subnets the router is already
    attached to.
    
    The previous code was calling the core plugin to look
    up each attached subnet individually. This led to slow
    responses if a router was attached to hundreds of other
    subnets.
    
    This patch just adjusts the logic to request all of the
    subnets from the core plugin in one call so the number
    of DB calls stays constant regardless of attached subnet
    count.
    
    Change-Id: I36a2b23b089269bb51ce3dc271c944b48fca8781
    Closes-Bug: #1558101


** Changed in: neutron
       Status: In Progress => Fix Released

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

Title:
  Neutron performance degradation when multiple subnets attached to same
  router

Status in neutron:
  Fix Released

Bug description:
  Hello

  In our stress test, Neutron has performance degradation when
  multiple subnets are added to the same router.

  I am attaching script to reproduce this bug.

  This script does the following:
  1. creates a ROUTER-1
  2. Create 10 networks titled: NETWORK-X
     2.1 Create 100 Subnets for each NETWORK-X and attach subnets to ROUTER-1
            using the neutron.add_interface_router()

  Here is the result for the first 500 subnets:

  Time spend to create 100 subnets: 281 seconds
  Time spend to create additional 100 subnets: 594 seconds
  Time spend to create additional 100 subnets: 912 seconds
  Time spend to create additional 100 subnets: 1191 seconds
  Time spend to create additional 100 subnets: 1464 seconds

  -----------------
  Total time to create 500 subnets is 74 minutes.
  When it took only 10 minutes to create first 100 subnets and link to router.

  
  To be able to run the test I had to disable quota and restart q-svc.
  From my neutron config file: /etc/neutron/neutron.conf

  [quotas]
  default_quota = -1
  quota_network = -1
  quota_subnet = -1
  track_quota_usage = false
  quota_router = -1
  quota_floatingip = -1
  quota_security_group = -1
  quota_security_group_rule = -1

  I am using regular all in one devstack installation using the l2/l3
  agent.

  Linux is Ubuntu 14.04.3 LTS

  This is my local.config file:
  -----------------

  [[local|localrc]]
  NETWORK_GATEWAY=10.0.0.1
  PUBLIC_NETWORK_GATEWAY=10.100.100.8
  Q_FLOATING_ALLOCATION_POOL=start=10.100.201.200,end=10.100.201.230
  RABBIT_PASSWORD=pwd123
  SERVICE_PASSWORD=pwd123
  SERVICE_TOKEN=pwd123
  ADMIN_PASSWORD=pwd123
  DATABASE_PASSWORD=pwd123

  disable_service n-net
  disable_service tempest
  enable_service heat
  enable_service h-eng h-api h-api-cfn h-api-cw
  enable_service q-agt
  enable_service q-dhcp
  enable_service q-l3
  enable_service q-meta
  enable_service q-svc

  FIXED_NETWORK_SIZE=256
  FIXED_RANGE=10.0.0.0/24
  FLAT_INTERFACE=eno1
  FLOATING_RANGE=10.100.0.0/16
  HOST_IP=10.100.100.8

  ---------

  Thanks and best regards,
  Yuli

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


References