From: Kent Overstreet <kent.overstreet@gmail.com>
To: Vojtech Pavlik <vojtech@suse.com>
Cc: Emmanuel Florac <eflorac@intellique.com>,
kmo@daterainc.com, linux-bcache@vger.kernel.org
Subject: Re: Bcache stuck at writeback of a key, consuming 100% CPU, not possible to detach
Date: Mon, 31 Aug 2015 08:53:54 -0800 [thread overview]
Message-ID: <20150831165354.GB27538@kmo-pixel> (raw)
In-Reply-To: <20150831164531.GA9810@suse.com>
On Mon, Aug 31, 2015 at 06:45:31PM +0200, Vojtech Pavlik wrote:
> On Mon, Aug 31, 2015 at 07:04:29AM -0800, Kent Overstreet wrote:
>
> > I suspect there's two different bugs here.
> >
> > - I'm starting to suspect there's a bug in the dirty data accounting, and it's
> > getting out of sync - i.e. reading 2.8 GB or whatever when it's actually 0.
> > that would explain it spinning when there actually isn't any work for it to
> > do.
>
> That may be the case, but doesn't quite match my observation. Using this
> command line:
>
> echo 2 > writeback_percent; echo 0 > writeback_percent; echo 100000 > writeback_rate; echo none > cache_mode; while true; do if top -b -n 1 | grep 'R.*bcache_write'; then date; echo looping; echo writeback > cache_mode; echo 40 > writeback_percent; sleep 1; echo 2 > writeback_percent; echo 0 > writeback_percent; echo 100000 > writeback_rate; echo none > cache_mode; echo fixed; cat /sys/block/bcache0/bcache/dirty_data; fi; done
>
> I managed to get down to about 200 MB od dirty data reported. If the
> reporting was off by a fixed offset, I wouldn't be getting the 100% CPU
> and running bcache_writeback at 5GB of dirty data already.
>
> At least unless the accounting of dirty data is very wrong and
> fluctuating.
Huh, that's good to know then.
> > - with a large enough amount of data, the 30 second writeback_delay may be
> > insufficient; if it takes longer than that just to scan the entire keyspace
> > it'll never get a chance to sleep. try bumping writeback_delay up and see if
> > that helps.
>
> That shouldn't be the case when the amount of dirty data is below a
> gigabyte, or is it?
No - it has to scan the entire btree, cached _and_ dirty data - so the scanning
gets expensive when you have lots of clean cached data and very little dirty
data, so it's supposed to ratelimit to no more than one scan every 30 seconds
(IIRC; that algorithm has gone through a couple different iterations). But if
it's taking more than 30 seconds to complete one scan... well, you see the
problem?
next prev parent reply other threads:[~2015-08-31 16:53 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-30 8:54 Bcache stuck at writeback of a key, consuming 100% CPU, not possible to detach Vojtech Pavlik
2015-08-31 14:39 ` Emmanuel Florac
2015-08-31 14:49 ` Vojtech Pavlik
2015-08-31 15:04 ` Kent Overstreet
2015-08-31 16:45 ` Vojtech Pavlik
2015-08-31 16:53 ` Kent Overstreet [this message]
2015-08-31 17:09 ` Vojtech Pavlik
2015-09-01 13:34 ` Vojtech Pavlik
2015-08-31 16:54 ` Vojtech Pavlik
2015-08-31 15:09 ` Emmanuel Florac
2015-08-31 15:54 ` Vojtech Pavlik
2015-09-05 11:06 ` Jens-U. Mozdzen
2015-09-05 11:29 ` Vojtech Pavlik
2015-09-07 15:13 ` Jens-U. Mozdzen
2015-09-07 15:52 ` Vojtech Pavlik
2015-09-07 16:01 ` Vojtech Pavlik
[not found] ` <B7A73681-AF9A-438C-9323-B2CE3BEFCA98@profihost.ag>
2015-09-07 18:56 ` Vojtech Pavlik
2015-09-08 9:04 ` Jens-U. Mozdzen
2015-09-08 9:10 ` Vojtech Pavlik
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=20150831165354.GB27538@kmo-pixel \
--to=kent.overstreet@gmail.com \
--cc=eflorac@intellique.com \
--cc=kmo@daterainc.com \
--cc=linux-bcache@vger.kernel.org \
--cc=vojtech@suse.com \
/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