SSD固態硬碟檔案系統選擇與效能優化

2021-08-25 05:07:49 字數 1860 閱讀 1632

最近由於工作需要,對ext3, ext4, reiserfs, reiser4, xfs, jfs, btrfs, nilfs2, logfs多種檔案系統在ssd固態硬碟上的效能進行了全面的測試評估與分析,為實際應用選擇ssd檔案系統提供參考,並給出效能優化建議。測試中使用的benchmark包括postmark,randomio, bonnie++, iozone, filebench,以及dd, 編譯核心, 建立/刪除海量檔案目錄等等。

1、ssd檔案系統選擇

ext4、reiserfs在效能方面表現較優,其中ext4資料吞吐量突出,reiserfs在iops(元資料操作)方面較優。

btrfs、nilfs2在效能方面表現稍差,但兩者均是日誌結構(log-structure),btrfs更是具有cow/wafl特性,並對針對ssd進行了優化。因此,有利於ssd的損耗均衡,延長使用壽命。

對於頻繁小檔案應用,建議選擇reiserfs, ext4, btrfs;對於大檔案應用,建議選擇ext4,btrfs;如果ssd壽命優化效能,則建議選擇btrfs, nilfs2。至於生產系統選擇哪個檔案系統,請結合線上實際測試參考。

2、關於logfs檔案系統

logfs也是一種日誌結構檔案系統,而且可以直接工作與ssd,這與jffs/yaffs不同。但是,測試結果表明,logfs目前非常不成熟,仍不穩定,未達到實際應用標準,諸如核心編譯、大量檔案目錄建立/刪除、postmark等benchmark均未能通過測試。由於ssd故障,randomio, bonnie++, iozone, filebench未完成。因此,不建議當前階段實際應用。

3、ssd效能特點

ssd資料定址時間很小,甚至可以忽略不計,順序與隨機io效能相差不大。sas、sata磁碟隨機io效能要小於順序io很多。

ssd讀效能要優於寫效能,這是由於寫前擦除、擦除塊邊界對齊、損耗均衡等原因所致。

ssd目錄建立/刪除操作效能與sas/sata相差不大,這與vfs和具體檔案系統元資料組織與操作規則相關。

4、ssd檔案系統優化

1、cache

如果ssd帶有dram快取,請開啟cache。

2、readahead

開啟塊驅動程式預讀功能,預讀扇區數建議256。(參考ext3檔案系統優化)

3、i/o scheduler

ssd資料定址時間非常小,甚至可以忽略不計,不需要對io請求進行插入和排序。因此,noop是最理想的排程演算法。

4、journal

如果檔案系統支援關閉journal,則關閉;否則,如果支援data=writeback,則在mount時指定。

5、檔案系統引數

請參考ext3檔案系統優化,通常保持defaults,特殊情況請參考mkfs引數。

6、mount引數

ext3defaults,async,noatime,nodiratime

ext4defaults,async,noatime,nodiratime,data=writeback,barrier=0

xfs defaults,async,noatime,nodiratime,barrier=0

reiser4 defaults,async,noatime,nodiratime

reiserfs defaults,async,noatime,nodiratime,notail,data=writeback

jfs defaults,async,noatime,nodiratime

btrfsdefaults,async,noatime,nodiratime,ssd

nilfs2defaults,async,noatime,nodiratime

logfsdefaults,async,noatime,nodiratime,data=writeback,barrier=0

硬碟 磁碟與檔案系統

每個盤面上都有乙個讀寫磁頭,盤面號即磁頭號。所有磁頭在磁頭臂的作用下內外移動,即任意時刻,所有磁頭所處的磁軌號是相同的 每個碟片有兩個面,每個面都有乙個磁頭 一塊硬碟有若看碟片,每個碟片都有上下兩個盤面。扇區是讀寫的最小單位,簇是資源分配的最小單位。所有盤面上的同乙個磁軌構成乙個柱面。在定位時,先確...

SSD固態硬碟分割槽4k對齊的方法與必要性

順網建議使用固態硬碟來做回寫已經有很長一段時間了,很高興得到了大家的認同,現在越來越多的使用者開始使用固態硬碟作為回寫盤,但是發現很多人卻忽略了乙個很重要的地方,就是在使用windows 2003對固態硬碟進行分割槽和格式化所造成的效能損耗!現在大部分的快閃儲存器組織結構是由很多個512kb的塊 b...

Linux中硬碟物理扇區 與檔案系統檔案對應關係

1 概述 系統讀寫檔案過程中,如下面核心列印資訊,報告讀寫某個扇區錯誤。那麼我們如何能夠通過sector找到讀寫哪個檔案錯誤?kernel end request i o error,dev sdb,sector 41913499 2 物理扇區與檔案對應關係計算 以下面列印資訊為例。kernel e...