The objective of the i/o bandwidth controller is to improve i/o performance
predictability of different cgroups sharing the same block devices.
Respect to other priority/weight-based solutions the approach used by this
controller is to explicitly choke applications' requests that directly (or
indirectly) generate i/o activity in the system.
The direct bandwidth limiting method has the advantage of improving the
performance predictability at the cost of reducing, in general, the overall
performance of the system (in terms of throughput).
Detailed informations about design, its goal and usage are described in the
Tested against latest git (2.6.26-rc8).
The all-in-one patch (and previous versions) can be found at:
Most of the changes in v4 are based on the Andrew Morton's review of patchset
v3. Thanks Andrew.
Changelog: (v3 -> v4)
- avoid potential deadlock in __set_page_dirty() with CONFIG_PREEMPT=n
- do not treat partitions as separate block devices: only entire block
devices are allowed to define i/o throttling rules; moreover, i/o activity
on partitions is accounted to opportune entire block device they belong to.
- reworked userspace<->kernel interface: accept and store all values in
bytes/sec (a userspace front-end application will take care of properly
showing and accepting values in human-readable format)
- uninlined a lot of functions
- code formatting fixes
- more documentation
- see documentation
Containers mailing list