目标:

目标:

我需要一个方向,因为所有的博客/基准似乎都是相互矛盾的。

目标:

FS 上有大量小文件,目录树形式类似于 AB/CD/EF... 两个大小组:G1:10-20 kB G2:100-500kB

我需要使用 nginx 来快速访问服务器。

限制

删除或创建性能并不重要。在极端情况下,可能需要一分钟,我不在乎。读取/访问必须快速<-> nginx。文件在创建时被复制到不同的磁盘,因此不涉及 raid。只是商品。动态 inode 创建或类似。可靠性不是主要问题,因为在 3 个不同的服务器上有重复项。

背景与矛盾

我读到 XFS 适合处理许多小文件的高性能邮件服务器。其他人说 XFS 不擅长处理小文件,EXT4 更好。

并且互联网上对此一直存在矛盾。

问题

总的来说,问题在于 inode 分配。大 inode 表浪费空间。将其设置得太弱,您就完蛋了:擦除并重新创建分区(不可能发生这种情况)。

对我来说,这是一个陷阱,即使还有可用空间,它也会阻止我添加新文件。这就是为什么我希望换用其他东西。

由于文件的高度动态性和不可预测的数量,我似乎陷入了困境。因此需要您的意见。

btrfs 被认为尚未准备好投入生产。其他的似乎不行(可靠性)

在这种情况下我应该使用什么 FS?

答案1

并且互联网上对此一直存在矛盾。

但您希望在这里得到一致的答案吗?

我唯一具体的建议是忘记 ZFS - 除非你在 Solaris 上运行(它会产生很多意义)。

除此之外,如何配置磁盘、I/O 调度程序以及为磁盘 I/O 提供备用内存比 FS 的选择更重要 - 但您确实特别询问了 FS。但是,您没有提供很多有关弹性要求的信息:您的电源有多可靠?您需要快照功能吗?

虽然我是 Reiser 的忠实粉丝,并且在我的网络服务器上运行它多年,但我不会在新系统上使用它 - 它从未被采用为 Linux 内核的一部分,并且开发正在逐渐停止。

因此在 Linux 上剩下的候选者是 XFS、JFS、Ext4 和 BTRFS(还有 NILFS - 但这又是一种小众工具,而且在我看来性能方面又很差)。

如果您必须使用 LVM(即使没有快照 IME,也会产生很大的性能开销),那么请确保您拥有具有屏障支持的最新版本 - 并且如果您使用日志文件系统,请启用屏障。

如果性能是您唯一的考虑因素,那么现在是时候开始基准测试了 - 我建议使用 Jens Axboe 的 fio 来测量读/写性能 - 它可以配置为模拟许多工作负载。

答案2

ZFS 和 XFS 分配 inode动态地所以可以满足需求。我不会选择 ReiserFS。

相关内容