[PATCH -mm 0/3] cgroup: block device i/o controller (v8)

From: Andrea Righi
Date: Sun Aug 03 2008 - 18:15:32 EST



The objective of the i/o 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 and/or iops 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
documentation.

Tested against 2.6.27-rc1-mm1.

The all-in-one patch (and previous versions) can be found at:
http://download.systemimager.org/~arighi/linux/patches/io-throttle/

Changelog: (v7 -> v8)
- rebase to 2.6.27-rc1-mm1
- implement token bucket iops/s throttling
- in the cgroup filesystem blockio.bandwidth has been renamed to
blockio.bandwidth-max and blockio.iops to blockio.iops-max
(for the future we would like to have also blockio.bandwidth-min and
blockio.iops-min and implement a mechanism to guarantee minimum performance
levels as well)
- token bucket rules can also be defined using the syntax:
DEV:LIMIT:1 (instead of DEV:LIMIT:1:BUCKET-SIZE)
In this case BUCKET-SIZE will be set equal to LIMIT (this is valid both for
I/O bandwidth limiting and I/O operations limiting rules)
- updated documentation

-Andrea
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/