XFS 與 ext4 性能對比
根據這個部落格,
XFS 是舊的文件系統,處理小文件的速度很慢。
閱讀本文時,我的第一印像是 XFS 並不好。
但是有人告訴我 XFS 使磁碟性能更好,這個基準沒有意義。
所以我對此做了更多的研究,發現了以下事實。
維基百科說
XFS 是 Silicon Graphics, Inc (SGI) 於 1993 年創建的高性能 64 位日誌文件系統。從 5.3 版開始,它是 SGI IRIX 作業系統中的預設文件系統。XFS 在 2001 年被移植到 Linux 核心;截至 2014 年 6 月,大多數 Linux 發行版都支持 XFS,其中一些發行版將其用作預設文件系統。
又是維基百科…
XFS 中的元數據操作歷來比其他文件系統慢,例如,導致刪除大量文件等操作的性能不佳。
howtogeek說_
XFS 在處理大文件時性能很好,但在處理很多小文件時性能比其他文件系統差。它對於主要需要處理大文件的某些類型的伺服器可能很有用。
這些事實和基準是否正確?
之前的 XFS Q/A 提到了這個頁面:如何選擇您的 Red Hat Enterprise Linux 文件系統。我認為它將解決您關於性能的問題:-)。這來自官方紅帽知識庫。複製整個頁面是不合適的。這是一個味道:
另一種表徵這一點的方式是,Ext4 文件系統變體往往在 I/O 能力有限的系統上表現更好。Ext3 和 Ext4 在有限頻寬 (< 200MB/s) 和高達 ~1,000 IOPS 的能力下表現更好。對於任何具有更高功能的東西,XFS 往往更快。與 Ext3 和 Ext4 相比,XFS 消耗的 CPU-per-metadata 操作也大約是 Ext3 和 Ext4 的兩倍,因此,如果您的工作負載受 CPU 限制且並發性很少,那麼 Ext3 或 Ext4 變體會更快。一般來說,如果應用程序使用單個讀/寫執行緒和小文件,Ext3 或 Ext4 會更好,而當應用程序使用多個讀/寫執行緒和更大的文件時,XFS 會大放異彩。
上一個答案
這是此答案的先前版本。我已經對其進行了調整和擴展,以提供上下文並證實上述來源。這不是所有必要的閱讀。
避免 XFS陳舊是沒有意義的。XFS 和 ext2/ext3/ext4 之間有許多相似之處,包括它們的長而活躍的生命週期。
XFS 是 RedHat Enterprise Linux 主要支持的文件系統。隨著時間的推移,XFS 的開發付出了很多努力,尤其是來自 RHEL。XFS 中新功能和高級功能的絕對數量更多 :-)。參見例如對“reflink”的支持。
“桌面 Linux” 安裝 - 也針對現代筆記型電腦 - 通常仍然使用 ext4。ext4 提供了一個非常熟悉的、眾所周知的環境。
在普通台式 PC 上,XFS 的優勢不一定適用。ext4 可能具有優勢,包括性能優勢。儘管如果您從表面上看上面的數字,它們表明 XFS 可能在快速的現代筆記型電腦上具有優勢!
目前,ext4 維護者受僱於Google。ext4 用於 Google 的 Android 作業系統。因此 ext4 被用於許多硬體功能較弱的手機和平板電腦中。$$ 1 $$$$ 2 $$
我還發現 ext4 很方便,因為您可以縮小文件系統分區。當您想要管理單個磁碟上不同安裝使用的空間時,這可能很有用。XFS 不支持收縮,只支持增長。(原則上,這可以在 LVM 中使用“精簡配置”來解決。參見 Stratis Storage,它使用 XFS 和精簡配置。也許將來 Stratis 會起飛,所有發行版都可以安裝到 Stratis)。
在某些情況下,ext4 設計被描述為陳舊且凌亂。XFS 顯然在這裡管理得更好一些:簡單的文件複製(或寫入)導致 Linux 文件系統上的延遲超過 10 秒。更新:這個連結現在提到了已經送出的用於改進 ext4 的更新檔,可能適用於 Linux 核心的 v5.3。未來仍可能有重大改進。
XFS“小文件性能”
相對於其他文件系統,在處理許多小文件時的 XFS 性能最初是一個主要弱點。隨著時間的推移,已經進行了改進。
需要注意的一個重大變化是延遲記錄,大約在 2010-2012 年左右。即,如果您看到任何早於此功能的小文件性能比較,則它們不再相關。延遲日誌設計很大程度上基於 ext3 日誌:-)。 儘管如此,兩者在不同情況下仍然存在性能差異。 見:https ://lwn.net/Articles/476263/
(在此之前,顯然“版本 2 日誌格式是在 2002 年添加的,這有助於使元數據性能更好”。但這可能無助於回答這個問題 :-)。
從那以後還有一些進一步的變化。例如,Red Hat 文件可能不會反映所有最近的更改。我注意到這句話:
$$ … $$免費 inode B+ 樹 (finobt) 以在“老化”文件系統上獲得更好的性能,並且文件類型現在預設儲存在目錄中 (ftype=1),這在某些包含大量(通常是小)文件的情況下極大地提高了性能。 – 評論什麼是儲存大量小文件(HDD,而不是 SSD)的最高性能 Linux 文件系統?