• David Sterba's avatar
    btrfs: change max_inline default to 2048 · f7e98a7f
    David Sterba authored
    The current practical default is ~4k on x86_64 (the logic is more complex,
    simplified for brevity), the inlined files land in the metadata group and
    thus consume space that could be needed for the real metadata.
    
    The inlining brings some usability surprises:
    
    1) total space consumption measured on various filesystems and btrfs
       with DUP metadata was quite visible because of the duplicated data
       within metadata
    
    2) inlined data may exhaust the metadata, which are more precious in case
       the entire device space is allocated to chunks (ie. balance cannot
       make the space more compact)
    
    3) performance suffers a bit as the inlined blocks are duplicate and
       stored far away on the device.
    
    Proposed fix: set the default to 2048
    
    This fixes namely 1), the total filesysystem space consumption will be on
    par with other filesystems.
    
    Partially fixes 2), more data are pushed to the data block groups.
    
    The characteristics of 3) are based on actual small file size
    distribution.
    
    The change is independent of the metadata blockgroup type (though it's
    most visible with DUP) or system page size as these parameters are not
    trival to find out, compared to file size.
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    f7e98a7f
ctree.h 146 KB