Re: [RFC][PATCH] per-uid/gid I/O throttling (was Re: [RFC][PATCH]per-task I/O throttling)

From: Balbir Singh
Date: Wed Jan 16 2008 - 05:46:00 EST


* Andrea Righi <righiandr@xxxxxxxxxxxxxxxxxxxxx> [2008-01-15 17:49:36]:

> Allow to limit the I/O bandwidth for specific uid(s) or gid(s) imposing
> additional delays on those processes that exceed the limits defined in a
> configfs tree.
>
> Examples:
>
> Limit the I/O bandwidth for user www-data (UID 33) to 4MB/s:
>
> root@linux:/config/io-throttle# mkdir uid:33
> root@linux:/config/io-throttle# cd uid:33/
> root@linux:/config/io-throttle/uid:33# cat io-rate
> io-rate: 0 KiB/sec
> requested: 0 KiB
> last_request: 0 jiffies
> delta: 388202 jiffies
> root@linux:/config/io-throttle/uid:33# echo 4096 > io-rate
> root@linux:/config/io-throttle/uid:33# cat io-rate
> io-rate: 4096 KiB/sec
> requested: 0 KiB
> last_request: 389271 jiffies
> delta: 91 jiffies
>
> Limit the I/O bandwidth of group backup (GID 34) to 512KB/s:
>
> root@linux:/config/io-throttle# mkdir gid:34
> root@linux:/config/io-throttle# cd gid:34/
> root@linux:/config/io-throttle/gid:34# cat io-rate
> io-rate: 0 KiB/sec
> requested: 0 KiB
> last_request: 0 jiffies
> delta: 403160 jiffies
> root@linux:/config/io-throttle/gid:34# echo 512 > io-rate
> root@linux:/config/io-throttle/gid:34# cat io-rate
> io-rate: 512 KiB/sec
> requested: 0 KiB
> last_request: 403618 jiffies
> delta: 80 jiffies
>
> Remove the I/O limit for user www-data:
>
> root@linux:/config/io-throttle# echo 0 > uid:33/io-rate
> root@linux:/config/io-throttle# cat uid:33/io-rate
> io-rate: 0 KiB/sec
> requested: 0 KiB
> last_request: 419009 jiffies
> delta: 568 jiffies
>
> or:
>
> root@linux:/config/io-throttle# rmdir uid:33
>
> Future improvements:
> * allow to limit also I/O operations per second (instead of KB/s only)
> * extend grouping criteria (allow to define rules based on process containers,
> process command, etc.)
>
> Signed-off-by: Andrea Righi <a.righi@xxxxxxxxx>

Hi, Andrea,

Thanks for doing this. I am going to review the patches in greater
detail and also test them. Why do you use configfs when we have a
control group filesystem available for grouping tasks and providing a
file system based interface for control and accounting?

--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL
--
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/