]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: increase prealloc size to double that of the previous extent
authorBrian Foster <bfoster@redhat.com>
Tue, 19 Feb 2013 15:24:41 +0000 (10:24 -0500)
committerBen Myers <bpm@sgi.com>
Thu, 7 Mar 2013 18:28:25 +0000 (12:28 -0600)
commit2227281214982115cda60737de8346a7a8284093
treef963932a36b0588c1e3b365dd1ef3d884e0baf0b
parente1a2d2dd22fbf38705a3bba395bfe994eea0a450
xfs: increase prealloc size to double that of the previous extent

The updated speculative preallocation algorithm for handling sparse
files can becomes less effective in situations with a high number of
concurrent, sequential writers. The number of writers and amount of
available RAM affect the writeback bandwidth slicing algorithm,
which in turn affects the block allocation pattern of XFS. For
example, running 32 sequential writers on a system with 32GB RAM,
preallocs become fixed at a value of around 128MB (instead of
steadily increasing to the 8GB maximum as sequential writes
proceed).

Update the speculative prealloc heuristic to base the size of the
next prealloc on double the size of the preceding extent. This
preserves the original aggressive speculative preallocation
behavior and continues to accomodate sparse files at a slight cost
of increasing the size of preallocated data regions following holes
of sparse files.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_iomap.c