From: Dave Chinner <david@fromorbit.com>
To: Tomasz Grabiec <tgrabiec@scylladb.com>
Cc: Brian Foster <bfoster@redhat.com>, Avi Kivity <avi@scylladb.com>,
linux-xfs@vger.kernel.org
Subject: Re: io_submit() blocks for writes for substantial amount of time
Date: Wed, 20 Sep 2017 09:38:56 +1000 [thread overview]
Message-ID: <20170919233856.GM10621@dastard> (raw)
In-Reply-To: <CAO2XSW5st7MpEAm=XEWHr_e0JHsn0yRk_q+qnj14N=GuTR0hJg@mail.gmail.com>
On Tue, Sep 19, 2017 at 07:53:52PM +0200, Tomasz Grabiec wrote:
> On Tue, Sep 19, 2017 at 7:38 PM, Brian Foster <bfoster@redhat.com> wrote:
> >> Is that because the disk is nearly full and there are no known flushed
> >> extents, or because the allocator doesn't prioritize known-flushed extents?
> >> From your comments below I gather you may not know for sure.
> >>
> >
> > I'm not sure without digging further into it. Hence the question around
> > free space availability.
>
> The file system was utilized between 90% and 95% out of 165GB during the test.
Then I'm surprised that you only hit these relatively minor delays.
Once you get beyond 85-90% full the filesystem is typically not
running through allocation fast paths as large contiguous free
spaces are getting to be non-existant (especially for such small
filesystems like this).
Continued operation at >85-90% full will run you into premature
aging situations like free space fragmentation, and then all your
allocations and then data IO patterns will begin to suffer. Once
you get above 95% full, various algorithms will even stop attempting
optimal allocations and instead start optimising for minimum size at
the expense of increased file fragmentation.
IOWs, expect unpredictable delays in the filesystem once you start
approaching ENOSPC, and the closer to ENOSPC you get the more
unpredictable the filesystem behaviour will get. And if you spend
long periods of time operating near ENOSPC, performance and
behaviour may not improve unless you free a large amount of space
(e.g. 50% of filesystem space) so that large contiguous free space
regions can reform....
So, yes, you can operate at near ENOSPC conditions. However, it's not
advisable if you require deterministic/predictable behaviour and/or
have long term filesystem performance requirements...
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
prev parent reply other threads:[~2017-09-19 23:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-19 8:50 io_submit() blocks for writes for substantial amount of time Tomasz Grabiec
2017-09-19 12:27 ` Brian Foster
2017-09-19 14:58 ` Christoph Hellwig
2017-09-19 16:31 ` Avi Kivity
2017-09-19 17:39 ` Brian Foster
2017-09-19 20:34 ` Christoph Hellwig
2017-09-20 6:17 ` Avi Kivity
2017-09-20 10:50 ` Brian Foster
2017-09-20 11:11 ` Avi Kivity
2017-09-20 14:49 ` Christoph Hellwig
2017-09-23 18:23 ` Avi Kivity
2017-09-19 20:34 ` Christoph Hellwig
2017-09-20 6:14 ` Avi Kivity
2017-09-19 16:29 ` Avi Kivity
2017-09-19 17:38 ` Brian Foster
2017-09-19 17:53 ` Tomasz Grabiec
2017-09-19 23:38 ` Dave Chinner [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=20170919233856.GM10621@dastard \
--to=david@fromorbit.com \
--cc=avi@scylladb.com \
--cc=bfoster@redhat.com \
--cc=linux-xfs@vger.kernel.org \
--cc=tgrabiec@scylladb.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