allocsize mount option

Dave Chinner david at fromorbit.com
Tue Sep 28 19:31:10 CDT 2010


On Tue, Sep 28, 2010 at 02:53:46PM -0400, Ivan.Novick at emc.com wrote:
> Hi all,
> 
> According to the documentation the allocsize mount option: "Sets the
> buffered I/O end-of-file preallocation size when doing delayed allocation
> writeout"
> 
> Will this value limit "extent" sizes to be be no smaller than the allocsize?

No - it's specualtive preallocation.

> I have set the following mount options:
> (rw,noatime,nodiratime,logbufs=8,allocsize=512m)

/me wishes he could run a sed script across the internet.

noatime implies nodiratime, and logbufs=8 is the default, so you
only need "noatime,allocsize=512m"

> And yet, depending on the workload, the extent sizes are often 1 or 2 orders
> of magnitude lower than 512 MB ...

It's speculative and there's no guarantee that it can find a big
enough extent to complete the full allocsize allocation. Also, when
you close the file the speculative allocation beyond EOF is
truncated away. This is a particular problem with NFS servers.

> If I wanted to do further reading on the subject, can someone point me to an
> approximate location in the code where the size of a newly created extent is
> determined?

Start here:

fs/xfs/xfs_iomap.c::xfs_iomap_write_delay()

Cheers,

Dave.
-- 
Dave Chinner
david at fromorbit.com




More information about the xfs mailing list