Ext4

為什麼EXT4文件系統同時掛載了relatime和lazytime

  • August 12, 2017

我正在使用核心 4.4 執行 Debian/Testing:

# uname -a
Linux shaula 4.4.0-1-amd64 #1 SMP Debian 4.4.6-1 (2016-03-17) x86_64 GNU/Linux

所以我想使用lazytimemount 選項,這就是為什麼我將以下內容放在我的/etc/fstab

# grep vg_crypt-root /etc/fstab 
/dev/mapper/vg_crypt-root   /   ext4   lazytime,errors=remount-ro   0   1

但是,現在文件系統似乎同時安裝 relatimelazytime

# grep vg_crypt-root /etc/mtab 
/dev/mapper/vg_crypt-root / ext4 rw,lazytime,relatime,errors=remount-ro,data=ordered 0 0

怎麼會這樣?

好消息:這是意料之中的。

lazytime 標誌獨立於 strictatime/relatime/noatime。預設是relatime。因此,當您將 noatime 替換為 lazytime 時,看到設置了 relatime 掛載選項也就不足為奇了。

——特德曹

不幸的是,這並不能解釋它的含義。

手冊頁的字面意思表明 relatime 會抑制記憶體更新磁碟寫入。lazytime 僅抑制磁碟寫入(並適用於 mtime 和 atime)。考慮到導致lazytime 實施的討論,這對我來說是有意義的。IOW 很容易為 relatime 編寫測試。但是只有在查看磁碟寫入或測試不正常關閉時會發生什麼時,才能看到延遲時間的影響。


就個人而言,lazytime 對 mtime 的影響聽起來有點奇怪。也許對於正常執行時間長的系統來說這是一個很好的優化,但我不知道普通台式機……而現在這實際上是一台筆記型電腦;我們不應該對電源故障時未定義或奇怪的部分定義行為如此狂熱。如果您考慮像 btrfs 這樣的寫時復製文件系統,那就更特殊了;即使文件大小沒有改變,“inode”也可能會更新。相比之下relatime是可愛和確定性的。

並且 mtime 優化似乎只有在您寫入大量不改變其大小的文件時才有幫助。我不確定是否有一個共同的基準。我想,一些非常重要的數據庫工作負載。

說真的,泰德,為什麼我們沒有得到lazyatime

引用自:https://unix.stackexchange.com/questions/276858