[libvirt] About cgroup mechanism using in libvirt

Ryota Ozaki ozaki.ryota at gmail.com
Thu Jun 17 05:08:51 UTC 2010


On Thu, Jun 17, 2010 at 1:48 PM, Alex Jia <ajia at redhat.com> wrote:
> Thanks for Daniel and Balbir.
>
> In fact, libvirt just have implemented CPU scheduler controller for QEMU driver now,
> the following controller is still not available for QEMU driver at present:
> 1. Memory controller
> 2. CPU set controller
> 3. CPU accounting controller
> 4. Devices controller
> 5. Freezer controller
> 6. Network class controller
>
> and CPU scheduler and memory controller are available for LXC driver now, the above
> 2-6 haven't been implemented in LXC driver by libvirt.

No. LXC driver utilizes 3-5 though they're not configurable.

  ozaki-r

>
>
>
> Best Regards,
> Alex
>
> ----- Original Message -----
> From: "Daniel P. Berrange" <berrange at redhat.com>
> To: "Balbir Singh" <balbir at linux.vnet.ibm.com>
> Cc: "Alex Jia" <ajia at redhat.com>, libvir-list at redhat.com
> Sent: Monday, June 14, 2010 6:20:33 AM GMT -05:00 US/Canada Eastern
> Subject: Re: [libvirt] About cgroup mechanism using in libvirt
>
> On Mon, Jun 14, 2010 at 03:28:42PM +0530, Balbir Singh wrote:
>> On Mon, Jun 14, 2010 at 3:10 PM, Daniel P. Berrange <berrange at redhat.com> wrote:
>> > 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
>> >
>>
>> Not sure if I understand this, but the balloon driver and memory
>> cgroups are not mutually exclusive. One could use both together and  I
>> would certainly like to see additional commands to support cgroups.
>> What happens if a guest (like freebsd) does not support ballooning?
>> Are you suggesting we'll not need cgroups at all with QEMU?
>
> No, I was merely describing the current usage. Making use of cgroups to
> enforce the limit is certainly a desirable RFE for the future.
>
>> >> 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.
>> >>
>>
>> I think we'll some notion of soft limits as well, not sure if they can
>> be encapsulated using the current set. We need memory shares for
>> example to encapsulate them.
>
>
> 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 :|
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list