数百万个小文件的文件系统

ben*_*ene 50 linux filesystems benchmark

在以下情况下,您会选择哪种 Linux 文件系统以获得最佳速度

  • 一亿个文件
  • 平均约 2k 文件大小
  • >95% 读取访问
  • 相当随机的访问
  • 高并发(>100 个进程)

注意:文件存储在一个深层次的树中以避免大目录。每个叶目录包含大约一千个文件。

您将如何对其进行基准测试?

And*_*ian 20

在随机搜索方面 Reiser 获胜,其次是 EXT4,其次是 JFS。我不确定这是否与目录查找完全相关,但它似乎是一个指标。您必须为此专门进行自己的测试。EXT2 击败了所有文件创建时间的裤子,可能是因为它没有日志,但 EXT4 仍然击败了除 Reiser 之外的所有内容,由于 hans reiser 的当前状态,您可能不想使用它。

您可能想要查看支持 NCQ 的驱动器,并确保您的安装设置为使用它。在大量搜索下,它应该提供速度提升。

最后,确保您的机器有大量的内存。由于文件不经常更新,如果有可用空间,Linux 最终会将其中的大部分缓存到 ram 中。如果您的使用模式正确,这将为您带来巨大的速度提升。

  • @AndrewCholakian Link 现在已经死了。 (7认同)
  • 您有一点关于它不是测试目录查找,但老实说,如果这是您的瓶颈,您最好将数据转储到真正的数据库中。文件系统在大多数数据库设计使用的小对象上几乎不能正常工作 (2认同)

Mik*_*ike 8

我同意 Andrew 所说的大部分内容,除了我会推荐Reiser4或更旧(但支持更好)的ReiserFS。正如这些测试(以及 ReiserFS 的文档)所表明的那样,它正是为您所询问的情况(大量小文件或目录)而设计的。我过去在 Gentoo 和 Ubuntu 上使用过 ReiserFS,没有任何问题。

至于 Hans Reiser 的状态,我不认为这是文件系统本身的代码或稳定性的问题。Reiser4 甚至由 DARPA 和 Linspire 赞助,所以虽然我同意 Reiser 文件系统的进一步发展尚未确定,但我认为这不应该成为是否有人应该使用它的决定性因素。

  • 我已经使用 ReiserFS 很长时间了。实际上,我*仍在*在我还没有重新安装的旧Gentoo服务器上使用它。这个装置在今年 5 月已经 4 岁了。我*可以*告诉你的是,它已经显着放缓。随着时间的推移,这种现象已经发生在所有使用 ReiserFS 的文件系统上,这些系统在所有具有此类文件系统的机器上都处于活跃的读写使用状态,没有例外 - 因此,如果您想长时间使用它,则需要保留心里。我已经远离它,现在将 XFS 用于大文件系统。 (4认同)