本篇文章給大家分享的是有關如何進行ext3,ext4,xfs和btrfs文件系統(tǒng)性能對比,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
晉城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
我這里只摘抄核心的圖例哈。
1:單字節(jié)寫入性能對比
A:由于硬盤式塊設備所以對于這種測試硬盤式不擅長的
B:btrfs系統(tǒng)只有200K/SEC,xfs表現(xiàn)的性能比較平衡。
2:塊寫入性能對比(由于硬盤是塊設備這種對比來的更有意義)
A:性能上差不多,但是效率上(CPU占用率上)來說最好的是xfs接下來依次是EXT4,EXT3,BTRFS
3:直接塊順序讀寫(關掉任何的系統(tǒng)和文件緩存)
A:繞過系統(tǒng)和文件緩沖的話(例如:視頻錄制,一些虛擬機軟件,ECC),EXT3/ 4是最好的選擇,其次是BTRFS,最后是XFS。
B:沒有一種文件系統(tǒng)可以適用于所有環(huán)境
4:隨機尋道
A:BTRFS系能最差,不到20 seeks/sec
B:EXT3性能最好,如果軟件大量的隨機尋址的話這個文件系統(tǒng)性能更好
5:創(chuàng)建和刪除大量文件(文件量一定)
BTRFS系統(tǒng)性能最差,下面是去掉該系統(tǒng)其它3種的對比
A:EXT4是更高效高性能的系統(tǒng),接下來依次是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下對讀性能產(chǎn)生影響
7:隨機讀寫吞吐量
A:100 seeks/sec每個塊16 KB,我們得出最大的讀取速度是1600 KB/sec,XFS,BTRFS大于了這個數(shù)值(可能數(shù)據(jù)不能隨機也可能緩沖影響了結(jié)果)
B:EXT3隨機寫入性能是最好的,適用于數(shù)據(jù)庫,高容量的記錄程序和虛擬機系統(tǒng)
8:向PostgreSQL 中寫入10萬行數(shù)據(jù)
A:BTRFS 性能是最好的,EXT4和XFS很低的cpu使用率但是性能太差
9:讀測試
A:10萬次的讀測試,性能差別不大
10:復雜的讀寫以及事務測試
A:EXT3性能最好
所以,數(shù)據(jù)庫最好是EXT3系統(tǒng),除非EXT4解決了所謂的回歸問題。
11:Linux kernel 2.6.36下的解包操作
A:該操作最好的文件系統(tǒng)是EXT4
這次操作會受到緩存和延時分配的影響,我們強制同步看看效果
A:XFS是較慢的FS,EXT3慢于EXT4和BTRFS
12:cat操作
A:該操作比較有效率的系統(tǒng)是XFS
B:該執(zhí)行最快CPU占用最高的系統(tǒng)是BTRFS,,說明該系統(tǒng)有復雜的元數(shù)據(jù)操作
13:解壓linux核心(會產(chǎn)生32000 files)
A:EXT3這個唯一沒有延時分配能力的系統(tǒng)是最差的
14:順序創(chuàng)建128個文件,每個長16 MB(共2 GB)各種系統(tǒng)產(chǎn)生的碎片情況
A:BTRFS系統(tǒng)碎片是個嚴重的問題(這也解釋了先前的這種系統(tǒng)讀性能低下的原因)
出去BTRFS系統(tǒng)后的圖
A:EXT4,XFS這種有延時分配機制的系統(tǒng)產(chǎn)生的碎片少于EXT3(即使one write/one fsync())
15:隨機創(chuàng)建128個文件,每個長16 MB(共2 GB)各種系統(tǒng)產(chǎn)生的碎片情況
A:隨機寫入在任何系統(tǒng)下都會產(chǎn)生碎片,即使有延時分配也沒用
Linux kernel 自 2.6.28
開 始正式支持新的文件系統(tǒng) Ext4。 Ext4 是 Ext3 的改進版,修改了 Ext3 中部分重要的數(shù)據(jù)結(jié)構,而不僅僅像 Ext3 對
Ext2 那樣,只是增加了一個日志功能而已。Ext4 可以提供更佳的性能和可靠性,還有更為豐富的功能:
1. 與 Ext3 兼容。執(zhí)行若干條命令,就能從 Ext3 在線遷移到 Ext4,而無須重新格式化磁盤或重新安裝系統(tǒng)。原有 Ext3 數(shù)據(jù)結(jié)構照樣保留,Ext4 作用于新數(shù)據(jù),當然,整個文件系統(tǒng)因此也就獲得了 Ext4 所支持的更大容量。
2. 更大的文件系統(tǒng)和更大的文件。較之 Ext3 目前所支持的最大 16TB 文件系統(tǒng)和最大 2TB 文件,Ext4 分別支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系統(tǒng),以及 16TB 的文件。
3. 無限數(shù)量的子目錄。Ext3 目前只支持 32,000 個子目錄,而 Ext4 支持無限數(shù)量的子目錄。
4. Extents。Ext3 采
用間接塊映射,當操作大文件時,效率極其低下。比如一個 100MB 大小的文件,在 Ext3 中要建立 25,600 個數(shù)據(jù)塊(每個數(shù)據(jù)塊大小
為 4KB)的映射表。而 Ext4 引入了現(xiàn)代文件系統(tǒng)中流行的 extents 概念,每個 extent
為一組連續(xù)的數(shù)據(jù)塊,上述文件則表示為“ 該文件數(shù)據(jù)保存在接下來的 25,600 個數(shù)據(jù)塊中”,提高了不少效率。
5. 多塊分配。當
寫 入數(shù)據(jù)到 Ext3 文件系統(tǒng)中時,Ext3 的數(shù)據(jù)塊分配器每次只能分配一個 4KB 的塊,寫一個 100MB 文件就要調(diào)用 25,600
次數(shù)據(jù) 塊分配器,而 Ext4 的多塊分配器“multiblock allocator”(mballoc) 支持一次調(diào)用分配多個數(shù)據(jù)塊。
6. 延遲分配。Ext3 的數(shù)據(jù)塊分配策略是盡快分配,而 Ext4 和其它現(xiàn)代文件操作系統(tǒng)的策略是盡可能地延遲分配,直到文件在 cache 中寫完才開始分配數(shù)據(jù)塊并寫入磁盤,這樣就能優(yōu)化整個文件的數(shù)據(jù)塊分配,與前兩種特性搭配起來可以顯著提升性能。
7. 快速 fsck。以前執(zhí)行 fsck 第一步就會很慢,因為它要檢查所有的 inode,現(xiàn)在 Ext4 給每個組的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系統(tǒng)就可以跳過它們而只去檢查那些在用的 inode 了。
8. 日志校驗。日志是最常用的部分,也極易導致磁盤硬件故障,而從損壞的日志中恢復數(shù)據(jù)會導致更多的數(shù)據(jù)損壞。Ext4 的日志校驗功能可以很方便地判斷日志數(shù)據(jù)是否損壞,而且它將 Ext3 的兩階段日志機制合并成一個階段,在增加安全性的同時提高了性能。
9. “無日志”(No Journaling)模式。日志總歸有一些開銷,Ext4 允許關閉日志,以便某些有特殊需求的用戶可以借此提升性能。
10. 在線碎片整理。盡管延遲分配、多塊分配和 extents 能有效減少文件系統(tǒng)碎片,但碎片還是不可避免會產(chǎn)生。Ext4 支持在線碎片整理,并將提供 e4defrag 工具進行個別文件或整個文件系統(tǒng)的碎片整理。
11. inode 相關特性。Ext4 支
持更大的 inode,較之 Ext3 默認的 inode 大小 128 字節(jié),Ext4 為了在 inode 中容納更多的擴展屬性(如納秒時間戳
或 inode 版本),默認 inode 大小為 256 字節(jié)。Ext4 還支持快速擴展屬性(fast extended
attributes) 和 inode 保留(inodes reservation)。
12. 持久預分配(Persistent preallocation)。P2P 軟
件為了保證下載文件有足夠的空間存放,常常會預先創(chuàng)建一個與所下載文件大小相同的空文件,以免未來的數(shù)小時或數(shù)天之內(nèi)磁盤空間不足導致下載失 敗。
Ext4 在文件系統(tǒng)層面實現(xiàn)了持久預分配并提供相應的 API(libc 中的 posix_fallocate()),比應用軟件自己實現(xiàn)更有
效率。
13. 默認啟用 barrier。磁
盤 上配有內(nèi)部緩存,以便重新調(diào)整批量數(shù)據(jù)的寫操作順序,優(yōu)化寫入性能,因此文件系統(tǒng)必須在日志數(shù)據(jù)寫入磁盤之后才能寫 commit 記錄, 若
commit 記錄寫入在先,而日志有可能損壞,那么就會影響數(shù)據(jù)完整性。Ext4 默認啟用 barrier,只有當 barrier 之前的數(shù)據(jù)
全部寫入磁盤,才能寫 barrier 之后的數(shù)據(jù)。(可通過 "mount -o barrier=0" 命令禁用該特性。)
以上就是如何進行ext3,ext4,xfs和btrfs文件系統(tǒng)性能對比,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。