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 <amot...@gmail.com> 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 -- 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