From: Nick Piggin <npiggin@suse.de>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Chris Mason <chris.mason@oracle.com>,
David Miller <davem@davemloft.net>,
akpm@linux-foundation.org, peterz@infradead.org, jack@suse.cz,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: Increase dirty_ratio and dirty_background_ratio?
Date: Wed, 14 Jan 2009 04:29:32 +0100 [thread overview]
Message-ID: <20090114032932.GC17395@wotan.suse.de> (raw)
In-Reply-To: <alpine.LFD.2.00.0901080858500.3283@localhost.localdomain>
On Thu, Jan 08, 2009 at 09:05:01AM -0800, Linus Torvalds wrote:
>
>
> On Thu, 8 Jan 2009, Chris Mason wrote:
> >
> > Does it make sense to hook into kupdate? If kupdate finds it can't meet
> > the no-data-older-than 30 seconds target, it lowers the sync/async combo
> > down to some reasonable bottom.
> >
> > If it finds it is going to sleep without missing the target, raise the
> > combo up to some reasonable top.
>
> I like autotuning, so that sounds like an intriguing approach. It's worked
> for us before (ie VM).
>
> That said, 30 seconds sounds like a _loong_ time for something like this.
> I'd use the normal 5-second dirty_writeback_interval for this: if we can't
> clean the whole queue in that normal background writeback interval, then
> we try to lower the tagets. We already have that "congestion_wait()" thing
> there, that would be a logical place, methinks.
>
> I'm not sure how to raise them, though. We don't want to raise any limits
> just because the user suddenly went idle. I think the raising should
> happen if we hit the sync/async ratio, and we haven't lowered in the last
> 30 seconds or something like that.
The other problem is that the pagecache is quite far removed from the
block device. Writeback can go to different devices, and those devices
might have different speeds at different times or different patterns.
We might autosize our dirty data to 500MB when doing linear writes because
our block device is happily cleaning them at 100MB/s and latency is
great. But then if some process inserts even 20MB worth of very seeky dirty
pages, the time to flush can go up by an order of magnitude. Let alone
500MB.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2009-01-14 3:29 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20090107154517.GA5565@duck.suse.cz>
2009-01-07 16:25 ` Peter Zijlstra
2009-01-07 16:39 ` Linus Torvalds
2009-01-07 20:51 ` David Miller
2009-01-08 11:02 ` Andrew Morton
2009-01-08 16:24 ` David Miller
2009-01-08 16:48 ` Linus Torvalds
2009-01-08 16:55 ` Chris Mason
2009-01-08 17:05 ` Linus Torvalds
2009-01-08 19:57 ` Jan Kara
2009-01-08 20:01 ` David Miller
2009-01-09 18:02 ` Jan Kara
2009-01-09 19:00 ` Andrew Morton
2009-01-09 19:07 ` Chris Mason
2009-01-09 22:31 ` david
2009-01-09 21:34 ` Peter Zijlstra
2009-01-14 3:29 ` Nick Piggin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090114032932.GC17395@wotan.suse.de \
--to=npiggin@suse.de \
--cc=akpm@linux-foundation.org \
--cc=chris.mason@oracle.com \
--cc=davem@davemloft.net \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=peterz@infradead.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox