Hi,
I've been using btrfs fi defrag with out the "-r -t 32M" option for
regular maintenance. I just learned, in
Documentation/btrfs-convert.asciidoc, that there is a recommendation
to run with "-t 32M" after a conversion from ext2/3/4. I then
cross-referenced this with btrfs-filesystem(8), and found that:
Extents bigger than value given by -t will be skipped, otherwise
this value is used as a target extent size, but is only advisory
and may not be reached if the free space is too fragmented. Use 0
to take the kernel default, which is 256kB but may change in the
future.
I understand the default behaviour of target extent size of 256kB to
mean only defragment small files and metadata. Or does this mean that
the default behaviour is to defragment extent tree metadata >256kB,
and then defragment the (larger than 256kB) data from many extents
into a single extent? I was surprised to read this!
What's really happening with this default behaviour? Should everyone
be using -t with a much larger value to actually defragment their
databases?
Thanks,
Nicholas
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html