好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

(ext2,ext3,reiserfs,xfs,jfs)文件系统的性能测试

(ext2,ext3,reiserfs,xfs,jfs)文件系统的性能测试

http://kingshuo.blog.51cto.com/2534759/672521

(ext2,ext3,reiserfs,xfs,jfs)文件系统的性能测试 2011-09-24 00:39:43

标签: ext2 reiserfs ext3 jfs xfs

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://kingshuo.blog.51cto.com/2534759/672521

几种文件系统 :

  ReiserFS 是一个非常优秀的文件系统。也是最早用于的日志文件系统之一。 ReiserFS 的开发者非常有魄力,整个文件系统完全是从头设计 的。目前, ReiserFS 可轻松管理上百 G 的文件系统,这在企业级应用中非常重要。 ReiserFS 有先进的日志 (Journaling/logging) 功能 机制。日志机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。文件与数据的安全性有了很大提高。 Reiserfs 对一些小文件不分配 inode 。而是将这些文件打包,存放在同一个磁盘分块中。而其它文件系统则为每个小文件分别放置到一个磁盘分块 中。这意味着:如果有 10000 个小文件,就要占用 10000 个分块。想想看这多浪费磁盘空间。 ReiserFS 基于快速平衡树 (balanced tree) 搜索,平衡树在性能上非常卓越,这是一种非常高效的算法。 ReiserFS 搜索大量文件时,搜索速度要比 ext2 快得多。 Reiserfs 文件 系统使用 B*Tree 存储文件,而其它文件系统使用 B+Tree 树。 B*Tree 查询速度比 B+Tree 要快很多。 Reiserfs 在文件定位上速度非常 快。 在实际运用中, ReiserFS  在处理小于  1k  的文件时,比 ext2  快  8  到  15  倍! ReiserFS  几乎在各个方面都优于  ext2 .


 

Ext2:  是  GNU/Linux  系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良 设计。其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的  x86  电脑系统中,簇最大为  4KB,  则单一文件大小上限 为  2048GB,  而文件系统的容量上限为  16384GB 。但由于目前核心  2.4  所能使用的单一分割区最大只有  2048GB ,因此实际上能使用 的文件系统容量最多也只有  2048GB 。 


 

Ext3 是一种 一种日志文件系统,是 Ext2 的扩展,文件系统在记录数据时,一般都会先写在缓存中,然后再写入磁盘;然而当突然出现故障时,数据无法写入磁盘,此时就会造成数据的丢失,而 ext3 文件系统就能根据日志追溯功能,能够重新找到数据,避免数据的丢失。


 

XFS  是  Silicon Graphics , Inc.  于  90  年代初开发的。它至今仍作为  SGI  基于  IRIX  的产品(从工作站到超级计算机)的底层文件系统来使用。由于采用缓存数据、延时智能存储,在操作大文件时,有一定的优势 , XFS  是一个全 64-bit 的文件系统,它可以支持上百万 T 字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大小为 263 = 9 x 1018 = 9 exabytes ,最大文件系统尺寸为 18 exabytes 。    XFS 使用高的表结构 (B+ 树 ) ,保证了文件系统可以快速搜索与快速空间分配。 XFS 能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。 


JFS 是 IBM 公司为 linux 系统开发的一个日志文件系统。从 IBM 的实力及它对 Linux 的态度来看, JFS 应该是未来日志文件系统中最具实力的一个文件系统。 JFS 提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。 JFS  能够在几秒或几 分钟内就把文件系统恢复到一致状态。 JFS 能够保证数据在任何意外宕机的情况下,不会造成磁盘数据的丢失与损坏 。

 

以上内容摘自互联网 , 笔者理解,现在以“数据无价”为主的时代,良好的文件系统,对数据的存储有很大的影响,不仅要满足快速写数据,还要满足数据的完整性和安全性,故很大的文 件系统都会以日志记录相应的一份数据,防止数据在存储时发生错误;同时随着数据的大量拥集,同时要求支持较大的存储数据的能力和快速的写数据能力,但一切 都不是绝对的,人无完人何况是人发明的文件系统,我们只能在实际生产中,依据生产需要,选择合适的文件系统,讲了那么多,笔者就依据自己的系统简单测试这 几种文件系统的性能,供大家以后 实际应用中参考。

 

笔者用的是虚拟机环境,系统是 redhat 5.4 ,由于此内核中无法正常支持 xfs ,笔者就下载内核安装包,使其能够支持 xfs 。

安装支持 xfs 的内核:

kernel-PAE-2.6.18-274.3.1.el5.centos.plus.i686.rpm

kmod-xfs-PAE-0.4-2.i686.rpm

重启系统,选择刚安装的内核。

 

安装 xfs ,及管理 jfs 和 reiserfs 的工具包:

 

<ol class="dp-xml"><li class="alt"><span><span>#rpm  -ivh  kmod-xfs-0.4-2.i686.rpm </span></span></li><li><span>#rpm  -ivh  xfsprogs-2.9.4-1.el5.centos.i386.rpm </span></li><li class="alt"><span>#rpm  -ivh  jfsutils-1.1.12-1.i386.rpm </span></li><li><span>#rpm  -ivh  reiserfs-utils-3.6.19-2.4.1.i386.rpm </span></li></ol>

 

 

加载 xfs 系统:

#modprobe   xfs

 

安装测试文件系统性能的工具:

#rpm  -ivh  iozone-3-397.i386.rpm

相关命令的介绍:

Iozone 可测试的文件系统的性能:读,写,重读,重写,后向读,条带读,随机读,随机写,异步

 

<ol class="dp-xml"><li class="alt"><span><span>-a  使用全自动的模式  64k---512M </span></span></li><li><span>-b  将测试的结果保存到指定文件 </span></li><li class="alt"><span>-R  保存为excel文件,生成excel报告信息 </span></li><li><span>-z  包含一些不常用的大小 </span></li><li class="alt"><span>-f  测试固定文件 </span></li><li><span>-g  设置最大文件大小,最大测试文件4G </span></li><li class="alt"><span>-n  设置下限 </span></li><li><span>-s  指定测试文件固定大小 </span></li><li class="alt"><span>-y  指定测试块的大小范围 </span></li><li><span>-q  结合y选项使用 </span></li><li class="alt"><span>-r  指定一次写入/读出的块大小 </span></li><li><span>-i N 用来选择测试项, 比如Read/Write/Random 比较常用的是0 1 2,可以指定成-i 0 -i 1 -i2.这些别的详细内容请查man   <span class="attribute">0</span><span>=</span><span class="attribute-value">write</span><span>/rewrite   </span><span class="attribute">1</span><span>=</span><span class="attribute-value">read</span><span>/re-read   </span><span class="attribute">2</span><span>=</span><span class="attribute-value">random</span><span>-read/write   </span><span class="attribute">3</span><span>=</span><span class="attribute-value">Read</span><span>-backwards   </span><span class="attribute">4</span><span>=</span><span class="attribute-value">Re</span><span>-write-record   </span><span class="attribute">5</span><span>=</span><span class="attribute-value">stride</span><span>-read   </span><span class="attribute">6</span><span>=</span><span class="attribute-value">fwrite</span><span>/re-fwrite   </span><span class="attribute">7</span><span>=</span><span class="attribute-value">fread</span><span>/Re-fread   </span><span class="attribute">8</span><span>=</span><span class="attribute-value">random</span><span> mix   </span><span class="attribute">9</span><span>=</span><span class="attribute-value">pwrite</span><span>/Re-pwrite   </span><span class="attribute">10</span><span>=</span><span class="attribute-value">pread</span><span>/Re-pread   </span><span class="attribute">11</span><span>=</span><span class="attribute-value">pwritev</span><span>/Re-pwritev   </span><span class="attribute">12</span><span>=</span><span class="attribute-value">preadv</span><span>/Re-preadv  </span></span></li></ol>

 

 

测试 ext2 文件系统:

 

<ol class="dp-xml"><li class="alt"><span><span># mke2fs /dev/sdb5 </span></span></li><li><span>#mkdir   /test </span></li><li class="alt"><span>#mount   /dev/sdb5   /test </span></li><li><span>#iozone -a -s 128M -y 512 -q 16384 -i 0 -i 1 -i 2 -f /test/a.out -Rb /root/ext2.wks </span></li></ol>

 

( 命令说明:使用 iozone 工具, 128M 为指定的测试文件的大小, 16384 为指定测试块的大小,单位为字节, -i 指定对哪些性能进行测试,这里指定的是写 / 重写,读 / 重读,随机读 / 随机重读 ,/test/a.out 为在测试的分区上写数据的文件名, /root/ext2.wks 为输出的表格报告信息)

测试 ext3 文件系统:

 

<ol class="dp-xml"><li class="alt"><span><span>#umount   /dev/sdb5 </span></span></li><li><span>#mke2fs -j  /dev/sdb5 </span></li><li class="alt"><span>#mount   /dev/sdb5   /test </span></li><li><span>#iozone -a -s 128M -y 512 -q 16384 -i 0 -i 1 -i 2 -f /test/b.out -Rb /root/ext3.wks </span></li></ol>

 

测试 reiserfs 文件系统:

 

<ol class="dp-xml"><li class="alt"><span><span>#umount   /dev/sdb5 </span></span></li><li><span>#mkfs.reiserfs  /dev/sdb5 </span></li><li class="alt"><span>#mount   /dev/sdb5   /test </span></li><li><span>#iozone -a -s 128M -y 512 -q 16384 -i 0 -i 1 -i 2 -f /test/c.out -Rb /root/reiserfs.wks </span></li></ol>

 

测试 xfs 文件系统:

 

<ol class="dp-xml"><li class="alt"><span><span>#umount   /dev/sdb5 </span></span></li><li><span>#mkfs.xfs    /dev/sdb5 </span></li><li class="alt"><span>#mount   /dev/sdb5   /test </span></li><li><span>#iozone -a -s 128M -y 512 -q 16384 -i 0 -i 1 -i 2 -f /test/d.out -Rb /root/xfs.wks </span></li></ol>

 

测试 jfs 文件系统:

 

<ol class="dp-xml"><li class="alt"><span><span>#umount   /dev/sdb5 </span></span></li><li><span>#mkfs.jfs    /dev/sdb5 </span></li><li class="alt"><span>#mount   /dev/sdb5   /test </span></li><li><span>#iozone -a -s 128M -y 512 -q 16384 -i 0 -i 1 -i 2 -f /test/e.out -Rb /root/jfs.wks </span></li></ol>

 

 

将生成的表格数据拷入 excel 表中并制图 :

 

性能测试孰高孰低,大家自见分晓!

本文出自 “ 痕久远 ” 博客,请务必保留此出处 http://kingshuo.blog.51cto.com/2534759/672521

查看更多关于(ext2,ext3,reiserfs,xfs,jfs)文件系统的性能测试的详细内容...

  阅读:37次