通用线程: 高级文件系统实现者指南,第 9 部分

http://tech.ddvip.com   2008年04月15日    社区交流

内容摘要:您到底如何着手在 Linux 生产环境下安全地使用它们呢?Daniel Robbins 通过向您展示如何在 Linux 2.4 下设置这些新的高级文件系统来回答这些问题。在这一部分,Daniel 介绍了 XFS ― 目前可用于 Linux 的 SGI 的免费企业级文件系统。

  最近,我进行了一系列测试,试图比较 XFS、ReiserFS 和 ext3 在原始性能方面的优劣。在与您分享该结果之前,理解以下事实很重要:该结果只着重比较了在单处理器系统上,系统负载较轻的情况下,常规文件系统的性能趋势,它并 不是衡量某一个文件系统是否比另一个文件系统“更好”的绝对尺度。尽管如此,我的结果应该可以帮助您形成一些概念,那就是:哪个文件系统可能最适于某个特定任务。再次声明,不应该将我的结果视为结论性的;最好的测试总是:在每个文件系统上运行您的特定应用程序,以观察它是如何执行的。

  结果

  在测试中,我发现 XFS 通常是相当快的。在大文件操作方面,XFS 在所有测试中一直处于领先地位,这是意料之中的,因为其设计者花了数年时间设计和调整它,以便能够极出色地完成此类任务。我还发现 XFS 有一个单点性能缺陷:它删除文件不是很快;在这一方面,ReiserFS 和 ext3 轻易地胜过了它。据 Steve Lord(SGI 的文件系统软件总工程师)说,刚编写完一个补丁来解决该问题,并且不久将可以使用该补丁。

  除此以外,XFS 的性能非常接近 ReiserFS,并在大多数测试指标上都超过了 ext3。XFS 最佳表现之一在于:象 ReiserFS 一样,它不产生不必要的磁盘活动。XFS 设法在内存中缓存尽可能多的数据,并且,通常仅当内存不足时,才会命令将数据写到磁盘时。当它将数据清仓(flushing)到磁盘时,其它 IO 操作在很大程度上似乎不受影响。相反,在 ext3(“data=ordered”缺省方式)下,将数据清仓到磁盘时,将导致许多额外寻道,甚至还会引起某种不必要的磁盘抖动(thrashing)(取决于 IO 负载)。

  我的性能和调整测试主要是关于将 RAM 磁盘中未压缩的内核源文件 tar 包(tarball)抽取到要测试的文件系统,然后递归地将新源文件树复制到同一文件系统中的一个新目录中。XFS 对这类任务执行得很好,尽管,最初 XFS 性能比 ReiserFS 略差一点。然而,在调整了测试 XFS 文件系统的 mkfs.xfs 和 mount 选项以后,当处理诸如在内核源文件树中的中等大小的文件时,XFS 执行效率比 ReiserFS 略好一点。但这不包括删除操作;至少目前,ReiserFS 和 ext3 删除文件要比 XFS 快得多。

来源:ibm    作者:Daniel Robbins    责编:豆豆技术应用

正在加载评论...