linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Murphy <lists@colorremedies.com>
To: Qu Wenruo <quwenruo.btrfs@gmx.com>
Cc: Chris Murphy <lists@colorremedies.com>,
	Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: Re: many busy btrfs processes during heavy cpu and memory pressure
Date: Mon, 12 Aug 2019 10:00:13 -0600	[thread overview]
Message-ID: <CAJCQCtTxrK1pWaqVd2NbT1d+P_UFxGD=a_i3i7xn7K7v+3vSxQ@mail.gmail.com> (raw)
In-Reply-To: <e70b4ea0-3416-14ce-79de-4a4c0bf2c9cd@gmx.com>

On Sun, Aug 11, 2019 at 11:43 PM Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>
>
>
> On 2019/8/12 上午10:27, Chris Murphy wrote:
> > I'm not sure this is a bug, but I'm also not sure if the behavior is expected.
> >
> > Test system as follows:
> >
> > Intel i7-2820QM, 4/8 cores
> > 8 GiB RAM, 8 GiB swap on SSD plain partition
> > Samsung SSD 840 EVO 250GB
> > kernel 5.3.0-0.rc3.git0.1.fc31.x86_64+debug, but same behavior seen on 5.2.6
> >
> > Test involves using a desktop, GNOME shell, while building webkitgtk.
> > This uses all available RAM, and eventually all available swap.
> >
> > While the build fails on ext4 as well as on Btrfs, the difference on
> > Btrfs is many btrfs processes taking up quite a lot of cpu resources.
> > And iotop shows many processes with unexpectedly high read IO. I don't
> > have enough data collected to be certain, but it does seem on Btrfs
> > the oom killer is substantially delayed. Realistically, by the time
> > the system is in this state, practically speaking it's lost.
> >
> > Screenshot shows iotop and top state information for this system, at
> > the time sysrq+t is taken.
> >
> > Full 'journalctl -k' output is rather excessive, 13MB uncompressed,
> > 714K zstd compressed
> > https://drive.google.com/open?id=1bYYedsj1O4pii51MUy-7cWhnWGXb67XE
> >
> > from last sysrq+t
> > https://drive.google.com/open?id=1vhnIki9lpiWK8T5Qsl81_RToQ8CFdnfU
> >
> > last screenshot, matching above sysrq+t
> > https://drive.google.com/open?id=12jpQeskPsvHmfvDjWSPOwIWSz09JIUlk
>
> This shows it's btrfs endio workqueue, which do the data verification
> against csum tree.
>
> So you see the point, ext* just doesn't support data csum.

But 10-17% CPU, times 8 processes? Even during scrub at maximum SSD
read there isn't such a load doing csum computations.

Get a load of this screenshot:
https://drive.google.com/file/d/1IDboR1fzP4onu_tzyZxsx7M5cT_RJ7Iz/view

That doesn't even make sense. How is it possible Btrfs is using 100%
CPU times 10 processes? There aren't even that many cores. And then
Firefox is using 800% CPU? Another 8 cores that don't exist. And then
look at iotop which is reporting 28G/s reads? This is an ordinary SATA
SSD that can't do more than maybe 600M/s reads. Something is very
weird and misreporting. But again, only on Btrfs. It doesn't happen
with ext4, even though the system hang user experience is the same and
not worse on Btrfs. Just the system statistics seems much crazier on
Btrfs.

The other time I've seen this behavior? Running Firefox through gdb
with certain kinds of crashes, that have nothing to do with swap.

-- 
Chris Murphy

      reply	other threads:[~2019-08-12 16:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-12  2:27 many busy btrfs processes during heavy cpu and memory pressure Chris Murphy
2019-08-12  5:43 ` Qu Wenruo
2019-08-12 16:00   ` Chris Murphy [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='CAJCQCtTxrK1pWaqVd2NbT1d+P_UFxGD=a_i3i7xn7K7v+3vSxQ@mail.gmail.com' \
    --to=lists@colorremedies.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=quwenruo.btrfs@gmx.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;
as well as URLs for NNTP newsgroup(s).