[openstack-dev] [nova] Resource tracker

Daniel P. Berrange berrange at redhat.com
Mon Oct 6 13:15:22 UTC 2014


On Mon, Oct 06, 2014 at 01:03:01PM +0000, Gary Kotton wrote:
> Hi,
> At the moment the resource tracker in Nova ignores that statistics that
> are returned by the hypervisor and it calculates the values on its own.
> Not only is this highly error prone but it is also very costly - all of
> the resources on the host are read from the database. Not only the fact
> that we are doing something very costly is troubling, the fact that we
> are over calculating resources used by the hypervisor is also an issue. 
> In my opinion this leads us to not fully utilize hosts at our disposal.
> I have a number of concerns with this approach and would like to know
> why we are not using the actual resource reported by the hypervisor.
> The reason for asking this is that I have added a patch which uses the
> actual hypervisor resources returned and it lead to a discussion on the
> particular review (https://review.openstack.org/126237).

If i'm interpreting git history correctly, this behaviour was (re-)introduced
in this commit:

  commit 8e851409f3a8a345ec954a880c81232fbf9e27b4
  Author: Brian Elliott <brian.elliott at rackspace.com>
  Date:   Fri Sep 14 15:17:07 2012 +0000

    Fix bugs in resource tracker and cleanup
    
    Fixes bugs in resource tracker:
    * Handle disk oversubscription
    * Handle suspended/powered off instances
    
    The usage model is changed to the old style that is
    based on actual instance usage on a compute host.
    (Not the current point in time of the hypervisor's
     reported host stats)
    
    There is now a 'limits' filter property that can be passed from
    the scheduler to the compute node to indicate that
    oversubscription of resources is desired:
    
    The 'limits' filter property is a dict with the following possible
    keys:
    
    * memory_mb - Specifies the memory ceiling for the compute node.
    * disk_gb - Specifies the disk space ceiling for the compute node.
    * vcpu - Specifies the max number of vcpus for the compute node.
    
    There is also some general cleanup and additional unit tests in
    an attempt to simplify down this function.
    
    bug 1048842
    bug 1052157
    
    Change-Id: I6ee851b8c03234a78a64d9f5c494dfc7059cdda4

Unfortunately that commit message isn't very informative as to why this
change was made, and the bugs don't seem to have any real detail either.

Perhaps Brian remembers himself ?

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|



More information about the OpenStack-dev mailing list