2009/12/8 Adam Litke <agl(a)us.ibm.com>:
When using ballooning to manage overcommitted memory on a host, a
system for
guests to communicate their memory usage to the host can provide information
that will minimize the impact of ballooning on the guests while maximizing
efficient use of host memory.
The design of such a communication channel was recently added to version 0.8.2
of the VirtIO Spec (See Appendix G):
-
http://ozlabs.org/~rusty/virtio-spec/virtio-spec-0.8.2.pdf
Host-side and guest-side implementations have been accepted for inclusion in
their respective projects:
- Guest:
http://lkml.org/lkml/2009/11/30/274
- Host:
http://lists.gnu.org/archive/html/qemu-devel/2009-12/msg00380.html
The following patch series implements a new libvirt interface to expose these
memory statistics. Thank you for your review and comments.
[PATCH 1/6] domMemStats: Add domainMemStats method to struct _virDriver
[PATCH 2/6] domMemStats: Add public symbol to libvirt API
[PATCH 3/6] qemu-driver: Enable domainMemStats in the qemu driver
[PATCH 4/6] remote-driver: Add domainMemStats support
[PATCH 5/6] virsh: Enable virDomainMemStats as a new command
[PATCH 6/6] python: Add python bindings for virDomainMemStats
Some general comments:
- You should name it virDomainMemoryStats to stay in sync with the
naming scheme.
- The struct members are an exact copy of that what virtio provides,
maybe we should see what different hypervisors can provide, discuss
what the useful parts are and define a general superset. For example
VMware ESX provides more/other memory statistics:
http://www.vmware.com/support/developer/vc-sdk/visdk400pubs/ReferenceGuid...
- You're missing descriptions (including context and meaning) and
units for the members of the stats struct.
Matthias