众所周知,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)卸载此磁盘分区
mount /test
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)卸载磁盘分区
mount /test
5、对XFS文件系统进行测试
(1)将一个新的磁盘分区格式化为XFS格式
mkfs.xfs -f /dev/sda8
(2)挂载此磁盘分区
mount /dev/sda8 /test/
(3)进行测试
iozone -a -s 256M -y 256 -i 0 -i 1 -i 2 -f /test/a.test -Rb /root/xfs.wks
(4)卸载此磁盘分区
mount /test
6、对ReiserFS文件系统进行测试
(1)将一个新的磁盘分区格式化为ReiserFS格式
mkfs.reiserfs /dev/sda9
(2)挂载此磁盘分区
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 操作性能对比
通过上面六张图,对每个文件系统针对相同操作性的对比我们就可以清楚的看到它们怎对不同的操作,以及不同的文件大小所表现出的性能差异,针对这些差异,再根据我们系统自身的特点就可以选择出最适合我们系统的文件系统,这对系统性能本身的优化起着重要作用
注:由于这是在虚拟机上而非真实物理机上进行的测试,再者没有选择足够多的块大小以及足够大的被测试文件进行测试,可能导致结果在一定程度上具有一定的偏差,但这也能基本说明每种文件系统的基本特性,如要想得到确切的测试结果,不妨大家再进行更充足的测试
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。