Getting allocation candidates is slow with "placement microversion < 1.29" from rocky release
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
OpenStack Compute (nova) | ||||||
Rocky |
In Progress
|
Medium
|
Tetsuro Nakamura |
Bug Description
Description
===========
In rocky cycle, 'GET /allocation_
From microversion 1.29, it can join allocations from resource providers in the same tree.
To keep the behavior of microversion before 1.29, it filters nested providers [1]
This function "_exclude_
This is executed and still heavy even if there is no nested providers in the environment when microversion < 1.29.
Steps to reproduce
==================
* Create about 6000 resource providers with some inventory and aggregates (using placeload [2])
* Query "GET /allocation_
[2] https:/
Expected (Ideal) result
==================
* No performance difference with microversion 1.25 <-> 1.29
Actual result
==================
* __15.995s__ for microversion 1.25
* __5.541s__ for microversion 1.29
with profiler enabled,
* __32.219s__ for microversion 1.25 - Note that 24.1s(75%) is consumed in the "_exclude_
* __7.871s__ for microversion 1.29 - Note that this is roughly 32.219s - 24.1s...
no longer affects: | nova |
description: | updated |
tags: | added: performance placement |
This issue was fixed in the openstack/nova 19.0.1 release.