• Brian Foster's avatar
    xfs: increase prealloc size to double that of the previous extent · e114b5fc
    Brian Foster authored
    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: default avatarBrian Foster <bfoster@redhat.com>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    Signed-off-by: default avatarBen Myers <bpm@sgi.com>
    e114b5fc
xfs_iomap.c 21.8 KB