[libvirt-users] What's the precision of the domain cpu stats?

Eric Blake eblake at redhat.com
Mon Apr 16 19:53:47 UTC 2012


On 04/16/2012 02:33 AM, Zhihua Che wrote:
> Hi, everyone
>         I'm using libvirt and resort to virDomainGetCPUStats for cpu
> usage by one domain. In my system, Ubuntu-11.10 64bit with 2 cores and
> Qemu Hyperviser, this function returns something like this:
>         virTypedParameter[0]
>        {
>            field: "cpu_time"
>            type: 4
>            value.ul  51640610899
>        }
>        virTypedParameter[1]
>        {
>            field: "cpu_time"
>            type: 4
>            value.ul  55302820304
>        }
> 
>       This 51640610899 and 55302820304  kind of conflict the result
> returned by "cat /proc/stat | grep cpu"
> cpu  449224 6812 89433 4407261 50327 1 2443 0 13041 0
> cpu0 224251 2603 43144 2195672 34682 0 2350 0 6692 0
> cpu1 224972 4209 46289 2211589 15644 0 93 0 6349 0
> 
> I know the precision of /proc/stat is 1/HZ,  so what's the precision
> of CPU stats returned by virDomainGetCPUStats?

Per libvirt.h:

/**
 * VIR_DOMAIN_CPU_STATS_CPUTIME:
 * cpu usage in nanoseconds, as a ullong
 */
#define VIR_DOMAIN_CPU_STATS_CPUTIME "cpu_time"

/**
 * VIR_DOMAIN_CPU_STATS_USERTIME:
 * cpu time charged to user instructions in nanoseconds, as a ullong
 */
#define VIR_DOMAIN_CPU_STATS_USERTIME "user_time"

Also, it helps to know that virDomainGetCPUStats gets its information
from the cpuacct cgroup; I have no idea how the kernel code relates
cpuacct tracking to /proc/stat tracking, so you'll have to track down
that relationship before you can expect any sanity checking between the
two values.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20120416/022c6088/attachment.sig>


More information about the libvirt-users mailing list