On 04/16/2012 09:15 PM, Zhihua Che wrote:
After reading your post, I did the below experiment again.
I started the domain by issuing 'start ubuntu-1' and shutted down my
domain by issuing 'destroy ubuntu-1'.
That's a forceful shutdown - it removes the virtual power cord, and
always works, but may leave your disks in a state that requires fsck to
recover.
(BTW, I cannot shutdown my domain by 'shutdown ubunut-1'. I
guess my
domain image got something wrong. I wish this didn't affect the
experiment)
shutdown requires the guest to understand an ACPI power request (not all
guests do), or to have a guest agent installed (even fewer guests have
qemu_ga installed, as it is still quite new). But when it does work, it
is nicer, because it lets the guest shut down gracefully.
Here are my two sample values.
start ubunt-1
cpu0+cpu1 11239925290
cpu0 6034491893
6 seconds active use attributed to cpu0,
cpu1 5205433307
5 seconds on cpu1
destroy and start ubunu-1
cpu0+cpu1 10621566430
cpu0 5403373809
cpu1 5218192621
5 seconds on each cpu. Yes, the values reset for you, and your testing
happened to time the guest with about the same amount of usage time
between your two starts and queries. You'll notice much more impressive
numbers if you let the guest run for 10 minutes, then query, then
restart, then query right away.
These values really confuse me.
They are merely kernel counters of how many nanoseconds of processor
time has been attributed to the cgroup owning the qemu process since the
cgroup was created. A qemu process is created each time you boot the
guest from scratch, and 'virsh destroy' followed by 'virsh start' is
indeed sufficient to start the guest from scratch.
I check the kvm process id through ps. I'm sure the two running
domain are assigned two different process id. I guess that means they
run as different qemu process as you mentioned.
Technically, a cgroup can own multiple pids, so distinct pids is not
always a guarantee of distinct cpuacct numbers. However, libvirt does
indeed create a new cgroup for each qemu pid, so in this instance, yes,
a different qemu pid should mean that the numbers started from scratch.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org