Btrfs
我應該關閉 ~/.thunderbird 的寫時複製嗎?
.thunderbird 中的郵箱文件是否視為數據庫文件(重複隨機寫入)?如果我將 .thunderbird 留在普通的 BTRFS 分區上,碎片會有多嚴重?我希望人們可以在這件事上分享他們的經驗。
幾個想法:
預設情況下,Thunderbird 用於郵箱的 mbox 格式(仍然)是順序的 - 新郵件附加在末尾。所以,根本沒有隨機寫訪問!
消息元數據(每條消息在郵箱文件中的哪個位置開始?是否已刪除?是否有任何標籤?)儲存在所謂的 MORK 數據庫文件 (.msf) 中。這是一種糟糕的數據庫格式(似乎每個人都同意)。更改其中的任何內容都需要重寫大部分文件(這是半順序的)。因此,也沒有隨機的準時寫訪問。
我不知道你收到了多少封電子郵件,但即使在糟糕的日子裡,對我來說每分鐘不到 2 封。不是“經常”,例如您的瀏覽器的歷史記錄被頻繁寫入。(這實際上是一個數據庫文件——例如,如果你使用 Firefox,則為 SQLite)
即使在實際的隨機訪問修改中,COW 也可以與不執行 COW 一樣有效。儲存介質實際上一次不能更改一個字節。他們物理上必須寫回修改過的塊,包括計算前向糾錯冗餘。
- 因此,對於基於快閃記憶體的儲存 (SSD),儲存設備大小的塊 COW 行為沒有缺點,因為文件碎片化不涉及尋軌時間。(事實上,出於磨損均衡的原因,SSD總是在內部為塊執行 COW。)
- 當然,對於具有尋軌時間 (HDD) 的設備,在按順序讀取文件時,碎片文件會影響訪問時間。如果這對你很重要,你可能有很多電子郵件(像我一樣,我最近數過,我的 Thunderbirds 有超過 50,000 封電子郵件),你可能需要考慮 Thunderbird 的替代品(就像我經常做的那樣,即使我正在使用SSD 陣列。我不再使用 Thunderbird 在本地進行全文搜尋。我的虛擬伺服器在 CPU、RAM 和儲存方面的性能比我的工作站低得多,它為伺服器端搜尋保留了全文索引,並且速度 > 20 倍作為雷鳥,所以我(尷尬地)使用“在伺服器上搜尋”功能讓我的 IMAP 伺服器搜尋電子郵件,而不是雷鳥在本地搜尋)。
總而言之:去擔心你用桌面電子郵件客戶端處理的幾封電子郵件之外的其他事情!現代文件系統當然可以很好地做到這一點。
甚至對於仍然存在的聊天網路。相比之下,我們沒有一種強大且相當有效的方式來儲存電子郵件——在電子郵件客戶端中。)