[libvirt] libvirt to report cpuWait of a guest.

Daniel P. Berrange berrange at redhat.com
Thu Dec 3 11:01:16 UTC 2015


On Thu, Dec 03, 2015 at 11:24:08AM +0200, Avi Weit wrote:
> Hi,
> 
> We are working on fixing CPU utilization calculation of guests (VMs) in 
> Ceilometer metering service of OpenStack.
> 
> Per that fix, we retrieve, at the host level, se.statistics.wait_sum (or 
> se.wait_sum in old versions) Linux kernel schedstat counter of the 
> KVM/QEMU threads ? that represent the VM. That counter denotes the time in 
> milliseconds the thread 'wants' to run (but not actually running because 
> of a contention).
> 
> However, as Daniel Berrange mentioned in the fix review, it would be 
> better to retrieve that information from libvirt instead and he asked me 
> to raise this in this mailing list.
> 
> I could not notice that libvirt exposes such a counter.
> 
> It would be very good if virDomainInfo (
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainInfo) can be 
> added with cpuWait in addition to cpuTime it currently has so that cpuWait 
> will denote the total *time* the VM *wants* to run.
> 
> Adding cpuWait to any other location of domain is fine as well.

We can't modify the virDomainInfo struct becase that would be an ABI
incompatible change. Fortunately we have a better API that is extensible
that we can use - virDomainListGetStats() with the flag
VIR_DOMAIN_STATS_VCPU currently returns per-VCPU information - the
state (running or not) and the CPU time:

# virsh domstats --vcpu demo
Domain: 'demo'
  vcpu.current=3
  vcpu.maximum=3
  vcpu.0.state=1
  vcpu.0.time=107130000000
  vcpu.1.state=1
  vcpu.1.time=0
  vcpu.2.state=1
  vcpu.2.time=0


We could easily extend this to add vcpu.NNN.wait=XXXXX data of the kind
you request

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 libvir-list mailing list