[libvirt] CFS Hardlimits and the libvirt cgroups implementation

Wen Congyang wency at cn.fujitsu.com
Mon Jun 13 06:39:22 UTC 2011


At 06/10/2011 08:32 PM, Adam Litke Write:
> 
> 
> On 06/10/2011 05:25 AM, Taku Izumi wrote:
>>
>>> --- snip ---
>>> <cputune>
>>>   ...
>>>   <cfs_period>1000000</cfs_period>
>>>   <cfs_quota>500000</cfs_quota>
>>> </cputune>
>>> --- snip ---
>>
>>  I think the element name should be generic and
>>  the percentage (0..100 or 0..vcpu*100) is better as 
>>  the element value. That's intuitive to me.
>>
>>  How about the follwing?
>>
>>   <cputune>
>>     <capping>50</capping>
>>   <cputune>
>>
>>  If it is not possible to control enough only one
>>  "capping" parameter, how about passing the other parameter
>>   as qemu driver's parameter via /etc/libvirt/qemu.conf ?
>>
> 
> I think it is important to be able to set the period.  The reason that
> cpu.cfs_period_us is exposed at all by the cgroup controller is because
> the setting might need to be changed.  What about making period optional
> by defining the units for period and quota as follows:
> 
> period: An optional attribute specified in microseconds.
> quota: A percentage of the period that the cpus may run.

If quota is an optional attribute specified in microseconds, it should be
in the range [1000, 18446744073709551(2^64/1000)] or less than 0.

I can use maxInclusive to make sure that the value is not greater than 2^64/1000,
but I do not know how to make sure that the value is not in the range [0, 1000).

If quota is a percentage of the period, it is hard to limit the value in the
file domain.rng. If we want to check the value, we need to know the period's value.

> 
> This way 'period' can be omitted or changed independently from quota.
> 




More information about the libvir-list mailing list