1. 创建空文件10000个的耗时
  2. 创建小文件,每个小文件使用512个blocks,一共创建10000个
  3. 创建一个2G文件的耗时
  4. 复制2G文件的耗时
  5. 删除2G大文件的耗时
  6. 删除10000个小文件的耗时

测试系统RHEL5 update 3,内核2.6.18.128-el5,SATA硬盘。测试用同一个4G的分区来做。我每一类测试做了3次,取所需时间的平均数。

测试结果统计(使用time工具来计时):

任务文件系统 EXT3 EXT4 Reiserfs
建立空文件 0m13.109 0m12.977 0m13.046
建立小文件 1m55.583 1m15.253 1m0.192
建立大文件 0m43.58 0m37.942 0m40.288
复制大文件 1m30.537 1m22.898 1m28.705
删除大文件 0m2.218 0m0.246 0m0.371
删除小文件 0m54.497 0m0.902 0m0.979

根据这个不怎么专业的测试,我们发现EXT4独树一帜,仅仅在操作小文件的时候输给了Reiserfs,其他都超过了其他两个文件系统。不过这个也不能说明EXT4就一定最好,因为我们还没有考虑碎片问题,经过一段时间的使用再来测试,可能才能更客观。

不过我们通过这个测试,发现我们的全新EXT4还是值得期待的。测试的时候,我使用的还只是mkfs.ext4dev 开发包。相信正式版的表现应该更上一层楼。

扩展阅读

对于磁盘性能的测试工具,又Postmark和Bonnie++,前者主要测试文件系统在邮件系统或者商务系统中的性能,针对需要频繁,大量地读取小文件。而Bonnie++主要测试大文件的。

由于Reiserfs的树形写入特点,结合测试结果,我们可以得到如下的结论:

  • 在小型系统,Reiserfs和ext3的性能是比较好的,但由于ext3的目录项是线型的,而Reiserfs的目录项是树型的,文件较多时,Reiserfs要更好一些。
  • 对于上G的大文件储蓄要求,各个文件系统差据很小,性能瓶颈在硬盘上。
  • 虽然XFS和JFS设计结构很好,但都是针对大中型系统的,在小型系统中发挥不明显。
  • 全日志模式和预定,回写这两种模式相比,差据是很大的。预定和回写两者差据不大。性能和安全的兼顾,文件系统的缺省安全模式,预定模式是比较好的选择。

ReiserFS介绍:http://en.wikipedia.org/wiki/ReiserFS

Ext3介绍:http://en.wikipedia.org/wiki/Ext3

Ext4介绍:http://en.wikipedia.org/wiki/Ext4

ext3, ext4 和 reiserfs 文件系统性能对比的更多相关文章

  1. 关于ext3,ext4,xfs和btrfs文件系统性能对比

    关于ext3,ext4,xfs和btrfs文件系统性能对比 应为原文:http://www.ilsistemista.net/index.php/linux-a-unix/6-linux-filesy ...

  2. ext3,ext4,xfs和btrfs文件系统性能对比

    应为原文:http://www.ilsistemista.net/index.php/linux-a-unix/6-linux-filesystems-benchmarked-ext3-vs-ext4 ...

  3. dumpe2fs 命令的使用,转储 ext2/ext3/ext4 文件系统信息

    使用man 命令可以查看 dumpe2fs 命令具体的使用的方法: NAME dumpe2fs - dump ext2/ext3/ext4 filesystem information SYNOPSI ...

  4. Linux文件系统性能优化 (转)

    http://blog.chinaunix.net/uid-7530389-id-2050116.html 由于各种的I/O负载情形各异,Linux系统中文件系统的缺省配置一般来说都比较中庸,强调普遍 ...

  5. 漫谈Linux标准的文件系统(Ext2/Ext3/Ext4)

    Ext 全称Linux extended file system, extfs,即Linux扩展文件系统,Ext2就代表第二代文件扩展系统,Ext3/Ext4以此类推,它们都是Ext2的升级版,只不过 ...

  6. linux分区之ext2,ext3,ext4,gpt

    linux分区之ext2,ext3,ext4,gpt 2013-07-10 12:00:24 标签:ext3 gpt 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明 ...

  7. Linux下误删除后的恢复操作(ext3/ext4)

    Linux是作为一个多用户.多任务的操作系统,文件一旦被删除是难以恢复的.尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据.在日常工程 ...

  8. Linux文件系统性能优化

    本文绝大部分是转载自CSDN刘爱贵专栏: http://blog.csdn.net/liuben/archive/2010/04/13/5482167.aspx另外根据参考文档增补了一部分内容. 由于 ...

  9. [C/C++][文件操作] 对比目录并列出同名较新文件、较旧文件 0.1

    主要是模仿robocopy的部分功能 (robocopy /L 参数可以列出本地目录和备份目录中的异同之处,主要是标记出:较新的.较旧的.多出的文件 ) 现在还不会写GUI,打算后面自己做目录树dif ...

随机推荐

  1. java Field 二三事

    java在反射时候经常用到了 Field 类. 我认为代码是最好的解释,直接上代码. 首先,用到了一个bean类,源代码如下: package com.ncs;      public class P ...

  2. Win32进程创建、进程快照、进程终止用例

    进程创建: 1 #include <windows.h> #include <stdio.h> int main() { // 创建打开系统自带记事本进程 STARTUPINF ...

  3. Android Migrate Android Code

    近期在更改程序架构的时候,用引用Library的方式实现程序的共享化过程中发现R.id.xx的文件不能够在  switch cases  中使用 看代码提示,如下信息: As of ADT 14, r ...

  4. 双数组Trie树(DoubleArrayTrie)Java实现

    http://www.hankcs.com/program/java/%E5%8F%8C%E6%95%B0%E7%BB%84trie%E6%A0%91doublearraytriejava%E5%AE ...

  5. GridViewColumn.CellTemplate

    <GridViewColumn Header="Sig" Width="210"> <GridViewColumn.CellTemplate& ...

  6. Linq-插入insert

    1.简单形式 说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库. NorthwindDataContext db = n ...

  7. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(五)针对hadoop2.9.0启动之后发现slave上正常启动了DataNode,DataManager,但是过了几秒后发现DataNode被关闭

    启动之后发现slave上正常启动了DataNode,DataManager,但是过了几秒后发现DataNode被关闭 以slave1上错误日期为例查看错误信息: /logs/hadoop-spark- ...

  8. js文件流下载通用方法

    通常我们会用到文件流下载文件,下面给大家一个通用的文件流下载的js /* *下载文件 * options:{ * url:'', //下载地址 * isNewWinOpen:false,是否新窗口打开 ...

  9. VC++导出具有命名空间的函数

    问题现象 原因分析 解决的方法 1 问题现象 导出具有命名空间的函数和类.源码例如以下: 头文件MiniMFC.h namespace MiniMFC { __declspec(dllexport) ...

  10. iOS编程(双语版) - 视图 - 基本概念

    1. 什么是视图? 视图显示为手机上的一块矩形区域,管理该区域的所有屏幕显示,它是UIView或者UIView的子类. 视图既可以从xib生成,也可以用代码生成. 2. 窗口 窗口是UIWindow或 ...