The goal is to be able to manage multiple services on the same host in a Xen environment. Xentop provides CPU utilization for each VM running on the host and we have also been able to do thesame in realtime using the Libvirt framework.
However, since MEMORY is not shared but pre-allocated (at VM creation time) and scaled with ballooning by the hypervisor, the host has no knowledge of how each domain is using their shares, whether for caching, buffering or whatever. So using xentop and virsh memory options will always produce the fixed memory shares.
I have similar problem with getting the DISK (guests are granted direct access to disk resources) and NETWORK utilizations for each domain externally from the VMs.
Please kindly drop any experience or suggestions you may have here.
NB: One alternative is to find other means to derive the MEMORY utilization of each domain from maybe their CPU utilization or some other counters on the host directly. If you have links to papers or you have an idea and methods to achieve this please kindly state here.
http://libvirt.org/
http://wiki.xenproject.org/wiki/Xentop%281%29