On 2018-08-21 08:06, Adam Borowski wrote:
On Mon, Aug 20, 2018 at 08:16:16AM -0400, Austin S. Hemmelgarn wrote:
Also, slightly OT, but atimes are not where the real benefit is here for
most people. No sane software other than mutt uses atimes (and mutt's use
of them is not sane, but that's a different argument)
Right. There are two competing forks of mutt: neomutt and vanilla:
https://github.com/neomutt/neomutt/commit/816095bfdb72caafd8845e8fb28cbc8c6afc114f
https://gitlab.com/dops/mutt/commit/489a1c394c29e4b12b705b62da413f322406326f
So this has already been taken care of.
so pretty much everyone who wants to avoid the overhead from them can just
use the `noatime` mount option.
atime updates (including relatime) are bad not only for performance, they
also explode disk size used by snapshots (btrfs, LVM, ...) -- to the tune of
~5% per snapshot for some non-crafted loads. And, are bad for media with
low write endurance (SD cards, as used by most SoCs).
Thus, atime needs to die.
The real benefit for most people is with mtimes, for which there is no
other way to limit the impact they have on performance.
With btrfs, any write already triggers metadata update (except nocow), thus
there's little benefit of lazytime for mtimes.
But does that actually propagate all the way up to the point of updating
the inode itself? If so, then yes, there is not really any point. if
not though, then there is still a benefit.