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 <ke...@benton.pub> 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp