[libvirt] About cgroup mechanism using in libvirt

Daniel P. Berrange berrange at redhat.com
Mon Jun 14 09:40:05 UTC 2010


On Sat, Jun 12, 2010 at 07:23:33AM -0400, Alex Jia wrote:
> Hey Daniel,
> The cgroup mechanism have been integrated into libvirt for LXC and QEMU driver,
> and the LXC driver uses all of cgroup controllers except for net_cls and cpuset, 
> while the QEMU driver only uses the cpu and devices controllers at present. 
> 
> From the user point of view, user can use some virsh commands to control some
> guest resources:
> 1. Using 'virsh schedinfo' command to get/set CPU scheduler priority for a guest

QEMU + LXC use the cpu controller 'cpu_shares' tunable

> 2. Using 'virsh vcpuin' command to control guest vcpu affinity

QEMU pins the process directly, doesn't use cgroups.  LXC has't
implemented this yet

> 3. Using 'virsh setmem' command to change memory allocation
> 4. Using 'virsh setmaxmem' command to change maximum memory limit

QEMU uses balloon driver.  LXC uses cgroups memory controller

> 5. Using 'virsh setvcpus' command to change number of virtual CPUs

QEMU uses cpu hotplug. LXC hasn't implemented this.

> I just make sure the above 1 using CPU scheduler controller, maybe 4 using Memory 
> controller? and maybe 5 using CPU set controller? I am not sure. 
> 
> And I wonder how to control devices access via virsh command or libvirt binding API
> such as python binding? in addition, for CPU accounting and Freezer controller, 
> how to use them to control guest resource from libvirt application layer? and how 
> to check setting result is valid such as cpuacct? these issues let me confuse at recent.

There isn't any direct access to cgroups via any APIs. The use of cgroups
is a private implementation details only. You just need to uses the APIs
that correspond to those virsh commands

Daniel
-- 
|: Red Hat, Engineering, London    -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org        -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list