[$nova] [$horizon] [$nova-scheduler] [$heat]

Stephen Finucane stephenfin at redhat.com
Wed Jan 20 13:36:34 UTC 2021

On Wed, 2021-01-20 at 14:15 +0100, Nagaraj Akkina wrote:
> I think we have a big problem, scheduler is able to allocate more memory than
> actual physical memory in the compute node, the same statistics are also there
> in database.
> For example : if we have a physical memory of 125GB in a node, the total
> memory allocated to all the instances(virsh dommemstat of all vms) in that
> host is more than physical memory say around 147GB, being ram_allocation_ratio
> defined as 1 and reserve_host_memory_mb defined as required.
> How can nova allocates more memory than actual?
> Statistics from database
> +-----------+----------------+-------------+----------------------+
> | memory_mb | memory_mb_used | free_ram_mb | ram_allocation_ratio |
> +-----------+----------------+-------------+----------------------+
> |    128897 |         154624 |      -25727 |                    1 |
> +-----------+----------------+-------------+----------------------+
> we are using openstack stein

You're probably losing memory due to huge pages or reserve_host_memory_mb still
isn't configured correctly.

What does placement report for total inventory and usage? You can find the UUID
of the resource provider like so:

  $ openstack resource provider list

Once you have that, you can view available inventory like so:

  $ openstack resource provider inventory list $RP_UUID

You should ensure that allocation_ratio, max_unit and reserved values match what
you'd expect, namely, 1.0, the total amount of memory on the host, and the value
configured for reserved memory on the host.

Once you've verified those, you can view usage like so:

  $ openstack resource provider usage show $RP_UUID

This will summarize the consumption of usage by all allocations against this
resource provider. Finally, you can view the individual breakdown of resources
by inspecting the inventory consumed for each instance on the host, like so:

  $ openstack server list --host devstack-1 -c ID
  # for each server
  $ openstack resource provider allocation show $SERVER_UUID

Hope this helps,

> Regards,
> Akkina

More information about the openstack-discuss mailing list