yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #64836
[Bug 1675504] Re: openstack_dashboard.usage.quotas.tenant_quota_usages fetches to many quotas and degrades performances
Reviewed: https://review.openstack.org/456416
Committed: https://git.openstack.org/cgit/openstack/horizon/commit/?id=359467b4013bb4f89a6a1309e6eda89459288986
Submitter: Jenkins
Branch: master
commit 359467b4013bb4f89a6a1309e6eda89459288986
Author: Akihiro Motoki <amotoki@xxxxxxxxx>
Date: Wed Apr 12 18:10:20 2017 +0000
Retrieve quota and usage only for resources really required
tenant_quota_usage() is used to retrieve quota and usage
to determine if a resource can be created.
However, tenant_quota_usage retrieves quota and usage for
all resources and it can be a performance problem.
This commit allows to load quota and usage only for resources
which are actually required.
Closes-Bug: #1675504
Change-Id: Iab7322a337a451a1a040cc2f4b55cc319b1ffc4c
** Changed in: horizon
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1675504
Title:
openstack_dashboard.usage.quotas.tenant_quota_usages fetches to many
quotas and degrades performances
Status in OpenStack Dashboard (Horizon):
Fix Released
Bug description:
When looking at the keypair dashboard, or router dashboard, etc...
openstack_dashboard.usage.quotas.tenant_quota_usages queries also
cinder, etc... and therefore makes tons of unused and unnecessary api
calls.
It slows down panels very heavily.
I did a quick and dirty test on some dashboards (with a local horizon
targeted on a production environment's APIs) by modifying the
tenant_quota_usages function to retrieve only the desired quotas and
usages for the page I need, and it turns out that rendering a page is
between 3 to five time faster. Just enormous.
We really do not need to fetch all usages and quotas when retrieving
keypairs, etc...
This function should accept extra parameters to get only the desired
quotas and usages.
However this is a huge task because it requires modifying ALL
dashboards.
OPENSTACK_HYPERVISOR_FEATURES['enable_quotas'] and
OPENSTACK_NEUTRON_NETWORK['enable_quotas'] set to False is not a
solution because it prevents fetching these quotas whatever the
dashboard.
The solution is e.g. not fetching network quotas and usages on the
volumes dashboard or cinder quotas and usages on the keypairs
dashboard, etc...
Quick tests show that the performance impact is simply more than
tremendously gigantic. e.g.: My "routers" page with the current
function takes 20 to 30 seconds to render (just catastrophic), and
only 3 to 5 seconds If I get only the the desired quotas and usages
required only for this dashboard.
To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1675504/+subscriptions
References