[openstack-dev] [nova] memory reporting for huge pages

Sahid Orentino Ferdjaoui sahid.ferdjaoui at redhat.com
Thu Feb 5 10:08:38 UTC 2015


On Wed, Feb 04, 2015 at 05:35:55PM -0600, Chris Friesen wrote:
> As part of
> "https://blueprints.launchpad.net/nova/+spec/virt-driver-large-pages" we
> have introduced the ability to specify based on flavor/image that we want to
> use huge pages.

Yes, to add more information; When using image properties, a large
pages request would only be honoured if the flavor already had a policy
'large' or 'any'.

> Is there a way to query the number of huge pages available on each NUMA node
> of each compute node?

Nova does not provide any API to request the number of large pages
available per NUMA on compute nodes.

On Linux you can use some tools to request specific information about
pages and NUMA topology like: numastat and numactl. libvirt also
provides some information about free pages availables.

[stack at localhost ~]$ virsh freepages --all
Node 0:
4KiB: 466511
2048KiB: 128

If you want to see what consum guests on host:

[root at localhost ~]# numastat -p qemu
Per-node process memory usage (in MBs) for PID 12863 (qemu-system-x86)
                           Node 0           Total
                  --------------- ---------------
Huge                       128.00          128.00
Heap                         3.85            3.85
Stack                        0.11            0.11
Private                     89.98           89.98
----------------  --------------- ---------------
Total                      221.94          221.94

But you still have to use a tool to request each of your compute nodes

> I haven't been able to find one (short of querying the database directly)
> and it's proven somewhat frustrating.
> 
> Currently we report the total amount of memory available, but when that can
> be broken up into several page sizes and multiple NUMA nodes per compute
> node it can be very difficult to determine whether a given flavor/image is
> bootable within the network, or to debug any issues that occur.

Sorry, I'm not sure to have completly understand your point. The
scheduler is responsible to find the best host to handle a request
(But i can be off-topic of your question). Also if you need to track
more information about memory per numa nodes there is probably
something to do with the extensible resource tracking spec here.

  http://specs.openstack.org/openstack/nova-specs/specs/juno/implemented/extensible-resource-tracking.html

s.

> Chris
> 
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list