衆所周知,linux标準檔案系統呈現出多種風格。如果我們沒有特殊的需要,就可以直接使用普通的Ext2檔案系統。如果我們想避免系統崩潰後冗長的檔案系統檢測,就可以切換到Ext3檔案系統。如果我們不得不處理許多的小檔案,ReiserFS是最好的選擇。除了這幾個問價系統之外,在linux中還可以使用另外幾個日志檔案系統,這些檔案系統就包括了IBM AIX的日志檔案系統JFS和SGI公司IRIX系統上的XFS檔案系統。
既然有這麼多檔案系統可以使用,那麼我們選擇哪個呢?下面我們就對這幾個檔案系統進行測試,來看看他們的優缺點,當我們詳細掌握的這些情況,那麼實作檔案系統的優化也就是小菜了。
測試環境:
由于硬體資源有限,是以使用的是Vmware虛拟機,版本号為:VMware-workstation-full-8.0.0-471780
系統核心版本: kernel-PAE-2.6.18-274.3.1.el5.centos.plus.i686
實體記憶體:1G
在測試的時候實體主機隻運作了Vmware這一個必要的程式,并且Vmware隻運作了這一個虛拟主機。
每個測試的分區均大小為1G
測試工具:
我們此次使用的測試工具為iozone,這個工具不僅能夠對檔案系統進行專業的測試,測試結果還能儲存為檔案并能夠使用Excel對結果進行分析繪圖,使測試結果以圖形的形式直接顯示出來,更便于我們對結果進行分析。
測試範圍:
因為Ext3檔案系統擁有三種排程器(journal、ordered和wrirteback),每種排程器有其專屬的排程算法,Ext3使用不同的排程器所表現的性能也是不同的,是以我們要對Ext3在使用redered和writeback這兩種不同排程器的性能進行測試,是以我們的要對Ext2、Ext3(redered、writeback)、JFS、XFS和ReiserFS檔案系統的read(讀)、re-read(重讀)、write(寫)、rewrite(重寫)、random-read(随機讀)和random-write(随機寫)資料的基本性能進行測試。
測試過程
一、準備工作
1、準備需要的相關檔案系統和測試工具的rpm包
jfsutils-1.1.12-1.i386.rpm
kernel-PAE-2.6.18-274.3.1.el5.centos.plus.i686.rpm
reiserfs-utils-3.6.19-2.4.1.i386.rpm
kmod-xfs-PAE-0.4-2.i686.rpm
kmod-xfs-0.4-2.i686.rpm
xfsprogs-2.9.4-1.el5.centos.i386.rpm
iozone-3-397.i386.rpm
2、安裝測試工具iozone
rpm -ivh iozone-3-397.i386.rpm
這個測試工具的預設安裝路徑很是詭異,在/opt下,為了以後友善iozone指令的使用,将iozone工具的所有指令加入變量PATH中并永久有效,具體方法如下:
vim /etc/profile
在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC這行之上加入下面内容:
PATH=$PATH:/opt/iozone/bin
結果如圖所示:

儲存退出之後執行下列指令,重新加載這個檔案的變量
source /etc/profile
說明:如果我們現在使用的不是centos系統,就下載下傳centos核心rpm包進行安裝,以能夠完全支援這幾個檔案系統,本測試所使用的centos核心rpm包為:kernel-PAE-2.6.18-274.3.1.el5.centos.plus.i686.rpm
安裝過程:
rpm -ivh kernel-PAE-2.6.18-274.3.1.el5.centos.plus.i686.rpm
安裝完成之後,必須重新啟動系統并加載新的核心即可。
二、安裝檔案系統
1、安裝JFS檔案系統
rpm -ivh jfsutils-1.1.12-1.i386.rpm
安裝JFS檔案系統子產品
modprobe jfs
2、安裝ReiserFS檔案系統
rpm -ivh reiserfs-utils-3.6.19-2.4.1.i386.rpm
安裝ReiserFS檔案系統子產品
modprobe reiserfs
3、安裝XFS檔案系統
rpm -ivh kmod-xfs-0.4-2.i686.rpm
rpm -ivh xfsprogs-2.9.4-1.el5.centos.i386.rpm
rpm -ivh kmod-xfs-PAE-0.4-2.i686.rpm
安裝XFS檔案系統子產品
modprobe xfs
三、建立所要使用的磁盤分區
在自己主機的磁盤上建立5個均為1G的磁盤分區,這個建立過程就不再叙述了
四、進行測試
1、對Ext2檔案系統測試
(1)對建立的一個磁盤進行Ext2檔案系統格式化
mkfs.ext2 /dev/sda5 (使用自己的實際磁盤分區編号,我的為/dev/sda5)
(2)建立挂載點,挂載該分區
mkdir /test
mount /dev/sda5 /test
(3)測試
iozone -a -s 256M -y 256 -i 0 -i 1 -i 2 -f /test/a.test -Rb /root/ext2.wks
(說明一下這個測試指令的意思:-a 使用全自動模式進行測試,将使用4k、8k一直到16M大小的塊檔案分别對磁盤進行測試,這個過程太漫長,我們使用-y指定從256K大小的塊開始進行測試;-s指名被測試檔案的大小,如果被測試檔案過大,也将要花費大量的時間,是以我們選擇了256M;-i指定對檔案系統的哪些操作性能進行測試,0表示write/rewrite,1表示read/re-read,2表示random-read/write;-f 指明被測試的檔案,a.test這個檔案是自動虛拟的,不需要存在;-b表示測試的結果儲存到一個檔案中,我選擇為/root/ext2.wks,-R表示檔案可以被excel打開。)
測試完成之後将在我們設定的對應目錄下生成一個對應名字的檔案,則測試成功結束
(4)解除安裝挂載的磁盤分區
umount /test
2、對使用ordered排程器的Ext3檔案系統進行測試
(1)将一個新的磁盤分區格式化為Ext3格式
mkfs.ext3 /dev/sda6
(2)挂載這個磁盤分區,選擇ordered排程器
mount -o data=ordered /dev/sda6 /test/
(3)對此檔案系統進行測試
iozone -a -s 256M -y 256 -i 0 -i 1 -i 2 -f /test/a.test -Rb /root/ext3_ordered.wks
(4)解除安裝此磁盤分區
mount /test
3、對使用writeback排程器的Ext3檔案系統進行測試
(1)将已經格式化為Ext3的磁盤分區挂載,選擇writeback排程器
mount -o data=writeback /dev/sda6 /test
(2)進行測試
iozone -a -s 256M -y 256 -i 0 -i 1 -i 2 -f /test/a.test -Rb /root/ext3_writeback.wks
(3)解除安裝此磁盤分區
4、對JFS檔案系統進行測試
(1)将一個新的磁盤分區格式化為JFS格式
mkfs.jfs /dev/sda7
(2)挂載此分區
mount /dev/sda7/test/
(3)進行測試
iozone -a -s 256M -y 256 -i 0 -i 1 -i 2 -f /test/a.test -Rb /root/jfs.wks
(4)解除安裝磁盤分區
5、對XFS檔案系統進行測試
(1)将一個新的磁盤分區格式化為XFS格式
mkfs.xfs -f /dev/sda8
(2)挂載此磁盤分區
mount /dev/sda8 /test/
iozone -a -s 256M -y 256 -i 0 -i 1 -i 2 -f /test/a.test -Rb /root/xfs.wks
6、對ReiserFS檔案系統進行測試
(1)将一個新的磁盤分區格式化為ReiserFS格式
mkfs.reiserfs /dev/sda9
mount /dev/sda9 /test
(3)對此磁盤分區進行測試
iozone -a -s 256M -y 256 -i 0 -i 1 -i 2 -f /test/a.test -Rb /root/reiserfs.wks
到此為止,所有的檔案系統已經測試完畢,接下來我們就将這六個測試檔案拷貝到有excel軟體的主機上使用excel進行結果整理,将每個測試i結果檔案導入excel之後都會顯示如下所示的六行資料:
将每個檔案的相應的操作測試結果進行彙總,并彙成圖,這個過程我就不再解釋,整理結果如下:
Write 操作性能對比:
Re-writer 操作性能對比
Reader 操作性能能對比
Re-reader 操作性能對比
Random Read 操作性能對比
Random Write 操作性能對比
通過上面六張圖,對每個檔案系統針對相同操作性的對比我們就可以清楚的看到它們怎對不同的操作,以及不同的檔案大小所表現出的性能差異,針對這些差異,再根據我們系統自身的特點就可以選擇出最适合我們系統的檔案系統,這對系統性能本身的優化起着重要作用
注:由于這是在虛拟機上而非真實實體機上進行的測試,再者沒有選擇足夠多的塊大小以及足夠大的被測試檔案進行測試,可能導緻結果在一定程度上具有一定的偏差,但這也能基本說明每種檔案系統的基本特性,如要想得到确切的測試結果,不妨大家再進行更充足的測試