Ext4
為什麼EXT4文件系統同時掛載了relatime和lazytime
我正在使用核心 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
所以我想使用
lazytime
mount 選項,這就是為什麼我將以下內容放在我的/etc/fstab
:# grep vg_crypt-root /etc/fstab /dev/mapper/vg_crypt-root / ext4 lazytime,errors=remount-ro 0 1
但是,現在文件系統似乎同時安裝了
relatime
和lazytime
:# 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
?