[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] XenAPI: vm_metrics sometimes does not return valid data


In order to get per-VM CPU utilization I use a code similar to this one
[1] (simplified version):

uuids = xend_session.session.xenapi.VM.get_by_name_label (name)
session_uuid = uuids[0]
session_metrics = session.xenapi.VM.get_metrics(session_uuid)
cpus_util = session.xenapi.VM_metrics.get_VCPUs_utilisation

Now, this works well, except for when it doesn't... Namely, very rarely,
XenAPI seems to break down and starts to return 0.0s for CPU load for
all the VMs for all the VCPUs.

I have verified that all the other objects are not "None", i.e. that
XenAPI keeps returning valid uuids, and session_metrics objects, but the
cpus_util list is always this:

cpus_util =  {'0': 0.0}

(For the case with 1 VCPU assigned to a VM).

I keep getting this for all the VMs in the system, despite the fact that
those VMs actually do some work (e.g. xentop correctly reports some load
on their VCPUs).

The above doesn't apply to Dom0 CPUs utilization, which I obtain using
the following code [2]:

session_hosts = session.xenapi.host.get_all()
session_cpus = session.xenapi.host.get_host_CPUs(session_hosts[0])

for cpu in self.session_cpus:
    cpu_total_load += session.xenapi.host_cpu.get_utilisation(cpu)

cpu_total_load /= len(session_cpus)

In that case I always keep getting the following values (Dom0 uses 2 CPUs):


Once I reboot the system the problems vanish.

Have no idea how to reproduce it -- occurs very rarely, but still
annoying. Anybody run into a similar problem?

I'm running Xen 3.4.3-rc3, but I don't think saw any commit that would
be dealing with such a problem in the more recent rc's.


[1] The actual code is here, in case you're interested:


Attachment: signature.asc
Description: OpenPGP digital signature

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.