On Thu, Jul 21, 2011 at 11:09:26AM +0100, Daniel P. Berrange wrote:
On Thu, Jul 21, 2011 at 10:08:03AM +0800, Wen Congyang wrote:
> Introduce the function virCgroupForVcpu() to create sub directory for each vcpu.
I'm far from convinced that this is a good idea. Setting policies on
individual VCPUs is giving the host admin a misleading illusion of
control over individual guest VCPUs. The problem is that QEMU has
many non-VCPU threads which consume non-trivial CPU time. CPU time
generated by a CPU in the guest, does not neccessarily map to a VCPU
thread in the host, but could instead go to a I/O thread or a display
thread, etc.
In fact the behaviour is worse than I describe, because the hard limit
setting is not applied at the VM cgroup at all, so if the VM is doing
heavy I/O, then no CPU limits are being applied to QEMU's I/O threads
at all.
The existing cpu_shares tunable is being set for the VM as a whole, so
I think it is really confusing to have the period/quota only affecting
VCPU threads and not the VM as a whole.
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 :|