ext3,ext4,xfs和btrfs檔案系統效能對比
應為原文:
還有一篇相關介紹:
另一篇:http://tetralet.luna.com.tw/index.php?op=ViewArticle&articleId=214&blogId=1
我這裡只摘抄核心的圖例哈。
1:單位元組寫入效能對比
A:由於硬碟式塊裝置所以對於這種測試硬碟式不擅長的
B:btrfs系統只有200K/SEC,xfs表現的效能比較平衡。
2:塊寫入效能對比(由於硬碟是塊裝置這種對比來的更有意義)
A:效能上差不多,但是效率上(CPU佔用率上)來說最好的是xfs接下來依次是EXT4,EXT3,BTRFS
3:直接塊順序讀寫(關掉任何的系統和檔案快取)
A:繞過系統和檔案緩衝的話(例如:影片錄製,一些虛擬機器軟體,ECC),EXT3/ 4是最好的選擇,其次是BTRFS,最後是XFS。
B:沒有一種檔案系統可以適用於所有環境
4:隨機尋道
A:BTRFS系能最差,不到20 seeks/sec
B:EXT3效能最好,如果軟體大量的隨機定址的話這個檔案系統效能更好
5:建立和刪除大量檔案(檔案量一定)
BTRFS系統效能最差,下面是去掉該系統其它3種的對比
A:EXT4是更高效高效能的系統,接下來依次是XFS,EXT3
6:順序讀寫吞吐量【沒有fsync的是100 writes/one fsync(),有的是1 writes/one fsync()】
A:100 writes/one fsync()各個效能差不多
B:1 writes/one fsync()時EXT3效能最好,接下來依次是XFS,EXT4,BTRFS
C:write + fsync()在BTRFS下對讀效能產生影響
7:隨機讀寫吞吐量
A:100 seeks/sec每個塊16 KB,我們得出最大的讀取速度是1600 KB/sec,XFS,BTRFS大於了這個數值(可能資料不能隨機也可能緩衝影響了結果)
B:EXT3隨機寫入效能是最好的,適用於資料庫,高容量的記錄程式和虛擬機器系統
8:向PostgreSQL 中寫入10萬行資料
A:BTRFS 效能是最好的,EXT4和XFS很低的cpu使用率但是效能太差
9:讀測試
A:10萬次的讀測試,效能差別不大
10:複雜的讀寫以及事務測試
A:EXT3效能最好
所以,資料庫最好是EXT3系統,除非EXT4解決了所謂的迴歸問題。
11:Linux kernel 2.6.36下的解包操作
A:該操作最好的檔案系統是EXT4
這次操作會受到快取和延時分配的影響,我們強制同步看看效果
A:XFS是較慢的FS,EXT3慢於EXT4和BTRFS
12:cat操作
A:該操作比較有效率的系統是XFS
B:該執行最快CPU佔用最高的系統是BTRFS,,說明該系統有複雜的後設資料操作
13:解壓linux核心(會產生32000 files)
A:EXT3這個唯一沒有延時分配能力的系統是最差的
14:順序建立128個檔案,每個長16 MB(共2 GB)各種系統產生的碎片情況
A:BTRFS系統碎片是個嚴重的問題(這也解釋了先前的這種系統讀效能低下的原因)
出去BTRFS系統後的圖
A:EXT4,XFS這種有延時分配機制的系統產生的碎片少於EXT3(即使one write/one fsync())
15:隨機建立128個檔案,每個長16 MB(共2 GB)各種系統產生的碎片情況
A:隨機寫入在任何系統下都會產生碎片,即使有延時分配也沒用
Linux kernel 自 2.6.28
開 始正式支援新的檔案系統 Ext4。 Ext4 是 Ext3 的改進版,修改了 Ext3 中部分重要的資料結構,而不僅僅像 Ext3 對
Ext2 那樣,只是增加了一個日誌功能而已。Ext4 可以提供更佳的效能和可靠性,還有更為豐富的功能:
1. 與 Ext3 相容。執行若干條命令,就能從 Ext3 線上遷移到 Ext4,而無須重新格式化磁碟或重新安裝系統。原有 Ext3 資料結構照樣保留,Ext4 作用於新資料,當然,整個檔案系統因此也就獲得了 Ext4 所支援的更大容量。
2. 更大的檔案系統和更大的檔案。較之 Ext3 目前所支援的最大 16TB 檔案系統和最大 2TB 檔案,Ext4 分別支援 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的檔案系統,以及 16TB 的檔案。
3. 無限數量的子目錄。Ext3 目前只支援 32,000 個子目錄,而 Ext4 支援無限數量的子目錄。
4. Extents。Ext3 採
用間接塊對映,當操作大檔案時,效率極其低下。比如一個 100MB 大小的檔案,在 Ext3 中要建立 25,600 個資料塊(每個資料塊大小
為 4KB)的對映表。而 Ext4 引入了現代檔案系統中流行的 extents 概念,每個 extent
為一組連續的資料塊,上述檔案則表示為“ 該檔案資料儲存在接下來的 25,600 個資料塊中”,提高了不少效率。
5. 多塊分配。當
寫 入資料到 Ext3 檔案系統中時,Ext3 的資料塊分配器每次只能分配一個 4KB 的塊,寫一個 100MB 檔案就要呼叫 25,600
次資料 塊分配器,而 Ext4 的多塊分配器“multiblock allocator”(mballoc) 支援一次呼叫分配多個資料塊。
6. 延遲分配。Ext3 的資料塊分配策略是儘快分配,而 Ext4 和其它現代檔案作業系統的策略是儘可能地延遲分配,直到檔案在 cache 中寫完才開始分配資料塊並寫入磁碟,這樣就能最佳化整個檔案的資料塊分配,與前兩種特性搭配起來可以顯著提升效能。
7. 快速 fsck。以前執行 fsck 第一步就會很慢,因為它要檢查所有的 inode,現在 Ext4 給每個組的 inode 表中都新增了一份未使用 inode 的列表,今後 fsck Ext4 檔案系統就可以跳過它們而只去檢查那些在用的 inode 了。
8. 日誌校驗。日誌是最常用的部分,也極易導致磁碟硬體故障,而從損壞的日誌中恢復資料會導致更多的資料損壞。Ext4 的日誌校驗功能可以很方便地判斷日誌資料是否損壞,而且它將 Ext3 的兩階段日誌機制合併成一個階段,在增加安全性的同時提高了效能。
9. “無日誌”(No Journaling)模式。日誌總歸有一些開銷,Ext4 允許關閉日誌,以便某些有特殊需求的使用者可以藉此提升效能。
10. 線上碎片整理。儘管延遲分配、多塊分配和 extents 能有效減少檔案系統碎片,但碎片還是不可避免會產生。Ext4 支援線上碎片整理,並將提供 e4defrag 工具進行個別檔案或整個檔案系統的碎片整理。
11. inode 相關特性。Ext4 支
持更大的 inode,較之 Ext3 預設的 inode 大小 128 位元組,Ext4 為了在 inode 中容納更多的擴充套件屬性(如納秒時間戳
或 inode 版本),預設 inode 大小為 256 位元組。Ext4 還支援快速擴充套件屬性(fast extended
attributes) 和 inode 保留(inodes reservation)。
12. 持久預分配(Persistent preallocation)。P2P 軟
件為了保證下載檔案有足夠的空間存放,常常會預先建立一個與所下載檔案大小相同的空檔案,以免未來的數小時或數天之內磁碟空間不足導致下載失 敗。
Ext4 在檔案系統層面實現了持久預分配並提供相應的 API(libc 中的 posix_fallocate()),比應用軟體自己實現更有
效率。
13. 預設啟用 barrier。磁
盤 上配有內部快取,以便重新調整批次資料的寫操作順序,最佳化寫入效能,因此檔案系統必須在日誌資料寫入磁碟之後才能寫 commit 記錄, 若
commit 記錄寫入在先,而日誌有可能損壞,那麼就會影響資料完整性。Ext4 預設啟用 barrier,只有當 barrier 之前的資料
全部寫入磁碟,才能寫 barrier 之後的資料。(可透過 "mount -o barrier=0" 命令禁用該特性。)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2149502/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下如何選擇檔案系統:EXT4、Btrfs 和 XFSLinux
- ext4和xfs檔案系統的擴容和收縮
- Linux下對lvm邏輯卷分割槽大小的調整(針對xfs和ext4不同檔案系統)LinuxLVM
- 【Linux】XFS檔案系統Linux
- 檔案的基本管理和XFS檔案系統備份恢復
- linux 掛載xfs檔案系統Linux
- linux/unix xfs大檔案系統Linux
- Linux系統中ext3和ext4有什麼不同?Linux
- 實戰:xfs檔案系統的備份和恢復
- Linux 檔案系統-ext3 檔案系統介紹(轉)Linux
- ext4檔案系統的優化優化
- dumpe2fs 命令的使用,轉儲 ext2/ext3/ext4 檔案系統資訊
- 分散式檔案系統(HDFS)與 linux系統檔案系統 對比分散式Linux
- LVM中對基於xfs的檔案系統進行擴容LVM
- 簡單瞭解EXT4檔案系統
- Ext4檔案系統有望內建加密加密
- Linux EXT4檔案系統介紹Linux
- 恢復ext4檔案系統被誤刪的檔案
- XFS檔案系統的備份、恢復、修復
- 雲伺服器xfs檔案系統修復方法伺服器
- 在rhel5 配置xfs檔案系統_轉摘
- linux環境下使用XFS檔案系統(轉)Linux
- ext3檔案系統基礎知識點
- ext3grep ext3檔案系統下恢復檔案
- 檔案系統(六):一文看懂linux ext4檔案系統工作原理Linux
- 比較虛擬機器檔案系統的效能虛擬機
- Linux下常見檔案系統對比Linux
- EXT4檔案系統學習(12)VFS之檔案系統物件file_system_type物件
- 深入理解 ext4 等 Linux 檔案系統Linux
- [轉載]btrfs檔案系統的kali linux 用snapper建立快照LinuxAPP
- 白皮書:Red Hat日誌檔案系統-ext3(轉)
- EXT4檔案系統學習(15)VFS之VFS 檔案/目錄物件物件
- .ts檔案和d.ts檔案對比
- EXT4檔案系統學習(10)VFS之磁碟結構Group和superblockBloC
- EXT4檔案系統學習(14)VFS之VFS inode
- Linux Ext4檔案系統的優點介紹Linux
- linux ext4,ext3的特點和區別Linux
- 檔案和檔案系統