[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[dm-devel] Re: Too many I/O controller patches
- From: Balbir Singh <balbir linux vnet ibm com>
- To: Paul Menage <menage google com>
- Cc: xen-devel lists xensource com, containers lists linux-foundation org, linux-kernel vger kernel org, virtualization lists linux-foundation org, dm-devel redhat com, agk sourceware org, Dave Hansen <dave linux vnet ibm com>, righi andrea gmail com
- Subject: [dm-devel] Re: Too many I/O controller patches
- Date: Tue, 05 Aug 2008 06:04:06 -0000
Paul Menage wrote:
> On Mon, Aug 4, 2008 at 1:44 PM, Andrea Righi <righi andrea gmail com> wrote:
>> A safer approach IMHO is to force the tasks to wait synchronously on
>> each operation that directly or indirectly generates i/o.
>>
>> In particular the solution used by the io-throttle controller to limit
>> the dirty-ratio in memory is to impose a sleep via
>> schedule_timeout_killable() in balance_dirty_pages() when a generic
>> process exceeds the limits defined for the belonging cgroup.
>>
>> Limiting read operations is a lot more easy, because they're always
>> synchronized with i/o requests.
>
> I think that you're conflating two issues:
>
> - controlling how much dirty memory a cgroup can have at any given
> time (since dirty memory is much harder/slower to reclaim than clean
> memory)
>
> - controlling how much effect a cgroup can have on a given I/O device.
>
> By controlling the rate at which a task can generate dirty pages,
> you're not really limiting either of these. I think you'd have to set
> your I/O limits artificially low to prevent a case of a process
> writing a large data file and then doing fsync() on it, which would
> then hit the disk with the entire file at once, and blow away any QoS
> guarantees for other groups.
>
> As Dave suggested, I think it would make more sense to have your
> page-dirtying throttle points hook into the memory controller instead,
> and allow the memory controller to track/limit dirty pages for a
> cgroup, and potentially do throttling as part of that.
Yes, that would be nicer. The IO controller should control both read and write
and dirty pages is mostly related to writes.
--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]