What is best Btrfs nodesize on ssd for home use

Today in mkfs.btrfs manpage I found this:

-n|–nodesize

Specify the nodesize, the tree block size in which btrfs stores metadata. The default value is 16KiB (16384) or the page size, whichever is bigger. Must be a multiple of the sectorsize and a power of 2, but not larger than 64KiB (65536). Leafsize always equals nodesize and the options are aliases.

Smaller node size increases fragmentation but leads to taller b-trees which in turn leads to lower locking contention. Higher node sizes give better packing and less fragmentation at the cost of more expensive memory operations while updating the metadata blocks.

Note versions up to 3.11 set the nodesize to 4k.

During Manjaro install I did manual partitioning and format with default settings.
How can I check what is my current nodesize on my disk?
Is possible to change it with the system on the disk?

:arrow_down:

The default value is 16KiB (16384) or the page size, whichever is bigger.

There’s no reason why the installer would have chosen a page size bigger than the default. :wink:

And:

So ok. It’s probably set to 4k

I asked mostly for the near future
Is there a reason (maybe ssd lifespan or performance) to change default value.
If I don’t understand this I probably should stick do defaults but I have a small obsessive compulsive disorder and when I don’t know it’s killing me :slight_smile:

No, it’s 16K since btrfs-progs version 3.12, and the current version of the package is 5.7.

It has nothing to do with lifespan, but it does have an impact on performance under certain conditions ─ we’re talking specialized enterprise-grade implementations here.

Larger node sizes require more memory but are faster, while smaller node sizes require less memory but are slower. This is not a difference you would notice under normal conditions, but when you’re dealing with large amounts of files, or databases and so on, then it may and probably does make a difference in performance.

I can relate to having OCD, but you really shouldn’t worry about anything in this regard. The defaults are sane, and they work well for most implementations. :wink:

3 Likes

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.