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

From: Andrea Righi
Date: Wed Jan 16 2008 - 07:58:34 EST


Balbir Singh wrote:
> * 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?
>

Well... I didn't choose configfs for a technical reason, but simply
because I'm more familiar with it, respect to the other equivalent ways
to implement this. But I'll try to look also at the control group
approach, I don't know in details all the advantages/disadvantages, but
it seems interesting anyway.

-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/