xfs
[Top] [All Lists]

Re: [FAQ] XFS speculative preallocation

To: Florian Weimer <fw@xxxxxxxxxxxxx>
Subject: Re: [FAQ] XFS speculative preallocation
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Sat, 22 Mar 2014 10:10:33 +1100
Cc: Brian Foster <bfoster@xxxxxxxxxx>, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <87eh1vuxam.fsf@xxxxxxxxxxxxxxxxx>
References: <20140321162920.GA3087@xxxxxxxxxxxxxx> <87eh1vuxam.fsf@xxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, Mar 21, 2014 at 09:11:29PM +0100, Florian Weimer wrote:
> * Brian Foster:
> 
> > Although speculative preallocation can lead to reports of excess space
> > usage, the preallocated space is not permanent unless explicitly made so
> > via fallocate or a similar interface.
> 
> How does an explicit allocation with posix_fallocate interact with
> speculative preallocation?  Does it disable it?

fallocate is permanent preallocation using unwritten extents.
Speculative preallocation is an extension of delayed allocation that
is done when extending the file and the EOF falls into a hole. If
there is unwritten extents beyond EOF, speulative preallocation is
not performed.

> I see rather dramatic fragmentation of the systemd journal when it is
> stored on XFS, and it calls posix_fallocate before writing data to the
> file.

There's your problem - systemd is preventing delayed allocation, and
so it fragmenting the file itself with it's write pattern.
Basically, that's a bug in systemd, and not something the filesystem
can avoid because userspace is directly controlling block
allocation.

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>