Re: Local DoS through write heavy I/O on CFQ & Deadline

Alex Bligh
2012-10-12T16:29:57Z

Michael,

--On 12 October 2012 16:58:39 +0200 Michal Hocko <mhocko@suse.cz> wrote:

> Once dirty_ratio (resp. dirty_bytes) limit is hit then the process which
> writes gets throttled. If this is not the case then there is a bug in
> the throttling code.

I believe that is the problem.

>> Isn't the only thing that is going to change that it ends up
>> triggering the writeback earlier?
>
> Set the limit lowe?

I think you mean 'lower'. If I do that, what I think will happen
is that it will start the write-back earlier, but the writeback
once started will not keep up with the generation of data, possibly
because the throttling isn't going to work. Note that for
instance using ionice to set priority or class to 'idle'
has no effect. So, to test my hypothesis ...

>> Happy to test etc - what would you suggest, dirty_ratio=5,
>> dirty_background_ratio=2 ?
>
> These are measured in percentage. On the other hand if you use
> dirty_bytes resp. dirty_background_bytes then you get absolute numbers
> independent on the amount of memory.

... what would you suggest I set any of these to in order to test
(assuming the same box) so that it's 'low enough' that if it still
hangs, it's a bug, rather than it's simply 'not low enough'. It's
an 8G box and clearly I'm happy to set either the _ratio or _bytes
entries.

--
Alex Bligh