Files
Luca Miccini 6ad5796cef Fix admin/hypervisors page performance with vGPU resource providers
The admin/hypervisors page makes 4N+1 Placement API calls per
get_providers() invocation (inventories, usages, aggregates, traits
for each of N providers), and calls get_providers() twice per page
load (view context + tab preload). In deployments with vGPUs, each
physical GPU creates nested child resource providers, causing N to
scale with device count rather than host count. For 100 hosts with
10 vGPU providers each, this resulted in 8,800+ API calls per page
load per user.

Three changes address this:

1. Filter to root providers only: bump Placement API microversion
   from 1.6 to 1.14 (which includes parent_provider_uuid in
   responses) and skip nested child providers. These carry no
   VCPU/MEMORY_MB/DISK_GB inventory and rendered as empty rows.

2. Remove unused aggregates/traits fetching: these were fetched
   per-provider but never displayed in the template or table,
   reducing per-provider calls from 4 to 2.

3. Set preload=False on ProviderTab: defer loading resource
   provider data until the user clicks the tab, following the
   established pattern used by ~20 other tabs in Horizon.

For 100 hosts with 10 vGPUs each, initial page load goes from
8,800+ API calls to 201 (44x reduction).

Change-Id: I6b81fee4a0dbb59099e0697ebbcd530477c549a9
Signed-off-by: Luca Miccini <lmiccini@redhat.com>
2026-07-30 07:24:11 +02:00
..
2015-05-13 12:39:00 -06:00
2026-07-16 15:35:49 -05:00
2020-10-15 14:37:20 +09:00
2026-07-16 15:35:49 -05:00
2012-04-23 22:24:21 -07:00
2025-10-31 14:38:31 +01:00
2022-02-04 16:26:54 +09:00