以前我认为linux的所有的文件系统(ext2,ext3,reiserfs,jfs,xfs等)都没有碎片,但是遇到了 和windows一样的情况:刚装完系统时运行很快,而越用越慢。最近在Arch Linux的论坛上才看到有人说reiserfs有碎片,而且速度比较慢,于是让我开始怀疑我用了多年的reiserfs,于是也就去查找了一下这文面的 文章。
Filesystems (ext3, reiser, xfs, jfs) comparison on Debian Etch是一篇最近才写的在Debian Etch上面对各种文件系统测试的报告,略去一些具体的数据,我把得出的结果放在这里,以备有同样需要的朋友参考:
要尽量最大化地使用分区的容量(也就是少浪费空间),请使用ReiserFS, JFS 或 XFS。
想快速地创建文件系统和快速地挂载分区,请使用 JFS 或 XFS
需要对大文件快速操作,请使用 JFS 或 XFS,若想最小化CPU使用量,JFS会更好。
对于大的目录树,使用EXT3或者XFS。有人建议对于大量小文件使用ReiserFS比较好好,不好对于由10KB到5MB之间的不同大小文件组成的目录树,使用XFS或ext3在现时中会更快一些。JFS虽然能最小化cpu占用率,不过在速度上还是有些慢。
列出目录中的内容和在某一特定的目录树下搜索,有两种情况。(1) 更快但是cpu使用率更高(ReiserFS,XFS);(2)慢一些但是低cpu 使用率(ext3,JFS)。XFS是一个很好的折中,它有比较快的速度,适度的cpu占使用率和可接受范围的页错误。
结论:ext3浪费过多的空间而且格式化比较慢;ReiserFS挂载时间长,而且对于日常操作会产生比较多的页错误;JFS是CPU占用率最低的。XFS应该是用来作家用和小型商用文件服务器综合起来看最合适的文件系统,因为:
它能最大化地使用分区。
它是创建,挂载和卸载最快的。
它是对于500MB以上大文件操作最快的。
它是对于中小文件操作第二快的
它在对于大的目录树的搜索的时间和cpu使用率间找到了一个比较好的平衡点。
它不是cpu使用率最使的但是占用的系统资源在比较老的机子上也是可以接受的。
当然,对于日常应用来说鉴于XFS的速度和可伸缩性,它也是最佳的选择。