← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1834484] Re: [QoS] qos_plugin._extend_port_resource_request is killing port retrieval performance

 

Reviewed:  https://review.opendev.org/667998
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=8b00349a63c65e04b3d188366245234e880b7f60
Submitter: Zuul
Branch:    master

commit 8b00349a63c65e04b3d188366245234e880b7f60
Author: Rodolfo Alonso Hernandez <ralonsoh@xxxxxxxxxx>
Date:   Thu Jun 27 17:31:14 2019 +0000

    Refactor qos_plugin._extend_port_resource_request
    
    In order to speed up the port collection, some DB calls
    have been deleted in the extended function
    "QoSPlugin._extend_port_resource_request".
    
    With the parent commit, the port DB/OVO object now has the
    network QoS policy ID, making the network retrieval unneeded.
    
    In this refactor the QoS policy is collected from the DB only
    if a valid QoS policy ID exists, bound to the port or to the
    network. This reduces the number of QoS objects collection to
    one or zero.
    
    Change-Id: Iadf704c00378da99c502dca3e3b79796c368cac7
    Closes-Bug: #1834484


** 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/1834484

Title:
  [QoS] qos_plugin._extend_port_resource_request is killing port
  retrieval performance

Status in neutron:
  Fix Released

Bug description:
  The function [1], called during the port retrieval, is killing the
  performance. Although this code is needed for the BW aware scheduler
  (Nova-Neutron RFE), the high number of DB calls done inside this
  function is reducing the performance.

  Instead of this, we propose:
  - To publish inside the port DB object its own network qos policy, if any.
  - Use it inside this function to retrieve only once, if needed, the QoS policy.

  NOTE: the patches, if accepted, should be cherry-picked into Stein
  too.

  NOTE: benchmarks: done with 60 ports in a development laptop. Command executed: "openstack port list"
  - Stein and master: 6.5 secs
  - Stein and master, deleting the code of this function: 1.5 secs
  - Rocky: 1.5 secs.

  [1]
  https://github.com/openstack/neutron/blob/stable/stein/neutron/services/qos/qos_plugin.py#L86

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


References