Not like other File systems, Using the btrfs file system can optimize SSD . To make it done, you can do in two different ways:

Use mkfs.btrfs to optimize SSD

The first way is mkfs.btrfs turns off metadata duplication on a single device when /sys/block/device/queue/rotational is zero for the single specified device.

This is equivalent to specifying -m singleon the command line. It can be overridden and duplicate metadata forced by providing the -m dup option. Duplication is not required due to SSD firmware potentially losing both copies. This wastes space and is a performance cost.

Optimize SSD when mounting btrfs

The second way is through a group of SSD mount options: ssd , no ssd , and ssd _spread .
The ssd option does several things:

It allows larger metadata cluster allocation.
It allocates data more sequentially where possible.
It disables btree leaf rewriting to match key and block order.
It commits log fragments without batching multiple processes.


The ssd mount option only enables the ssd option. Use the no ssd option to disable it. Some SSDs perform best when reusing block numbers often, while others perform much better when clustering strictly allocates big chunks of unused space. By default, mount -o ssd will find groupings of blocks where there are several free blocks that might have allocated blocks mixed in.
The command mount -o ssd _spread ensures there are no allocated blocks mixed in. This improves performance on lower end SSDs.
The ssd _spread option enables both the ssd and the ssd _spread options. Use the no ssd to disable both these options.
The ssd _spread option is never automatically set if none of the ssd options are provided and any of the devices are non-rotational.

These options will all need to be tested with your specific build to see if their use improves or reduces
performance, as each combination of SSD firmware and application loads are different.

Comments powered by CComment