commit 1c8ad4553b4b8d404f941c5297e3f6e42c9f7e6a
Author: Jay Pipes <email address hidden>
Date: Sun Feb 12 13:34:14 2012 -0500
Completes fix for LP #928910 - libvirt performance
This patch adds the remainder of the recommended fixes
from the original bug report:
* Modifies methods in the compute manager that relied on
the DB power state to be in sync with the virt driver to
instead just query the power state of the instance from the
virt driver. This enables us to set the periodic tick to 10
for the problematic compute.manager.Manager._sync_power_states()
method.
* Modifies the _sync_power_states method in the following ways:
** Replace the call to driver.list_instances_detail() to a new, driver-overrideable get_num_instances() call
** For each instance known by the database, call driver.get_info()
separately inside the loop instead of calling the expensive list_instances_detail() method that can take a very long time
to complete on hosts with lots of instances
** Call greenthread.sleep(0) before each call to update the
database power state, enabling other periodic tasks to do work
Once again, I left an inefficient default implementation of the
new driver.get_num_instances() method in the base driver class. I
need help from folks who understand the Xen/VMWare drivers to do
an override for get_num_instances() in those drivers that calls
the underlying XenAPI or VMWare API.
Reviewed: https:/ /review. openstack. org/4061 github. com/openstack/ nova/commit/ 1c8ad4553b4b8d4 04f941c5297e3f6 e42c9f7e6a
Committed: http://
Submitter: Jenkins
Branch: master
commit 1c8ad4553b4b8d4 04f941c5297e3f6 e42c9f7e6a
Author: Jay Pipes <email address hidden>
Date: Sun Feb 12 13:34:14 2012 -0500
Completes fix for LP #928910 - libvirt performance
This patch adds the remainder of the recommended fixes
from the original bug report:
* Modifies methods in the compute manager that relied on manager. Manager. _sync_power_ states( ) list_instances_ detail( ) to a new,
driver- overrideable get_num_instances() call
list_instances _detail( ) method that can take a very long time sleep(0) before each call to update the
the DB power state to be in sync with the virt driver to
instead just query the power state of the instance from the
virt driver. This enables us to set the periodic tick to 10
for the problematic compute.
method.
* Modifies the _sync_power_states method in the following ways:
** Replace the call to driver.
** For each instance known by the database, call driver.get_info()
separately inside the loop instead of calling the expensive
to complete on hosts with lots of instances
** Call greenthread.
database power state, enabling other periodic tasks to do work
Once again, I left an inefficient default implementation of the get_num_ instances( ) method in the base driver class. I
new driver.
need help from folks who understand the Xen/VMWare drivers to do
an override for get_num_instances() in those drivers that calls
the underlying XenAPI or VMWare API.
Change-Id: I88002689cdda32 124423da320f8c5 42e286be51b