我想这是一个老问题,但是我在网上找到的所有答案都非常分散,所以这里......
我需要一个专用卷来存储数万个 ~10MiB 和 ~50MiB 文件。我怀疑一个大的 NTFS 集群大小会加速文件服务器,但是一个大的集群大小会造成任何其他伤害,比如减慢速度或浪费大量空间?
我应该使用 64K 集群、32K 还是纯默认(4K 大小)?
我想这是一个老问题,但是我在网上找到的所有答案都非常分散,所以这里......
我需要一个专用卷来存储数万个 ~10MiB 和 ~50MiB 文件。我怀疑一个大的 NTFS 集群大小会加速文件服务器,但是一个大的集群大小会造成任何其他伤害,比如减慢速度或浪费大量空间?
我应该使用 64K 集群、32K 还是纯默认(4K 大小)?
据我所知,NTFS 本身不存在与较大集群规模相关的任何性能问题。
如果您真的希望尽可能地提高速度,我建议您进行模拟和基准测试。您的应用程序如何读取数据(4K 块、8K 块等)将产生影响,NT 缓存和底层 RAID 缓存上的缓存命中模式也是如此。磁盘/存储硬件(RAID 布局、SAN 配置等)也会有所作为。
最终,应用程序的行为将成为性能的最大决定因素。您可以在网上看到各种应用程序(Exchange、SQL Server 等)的“规划指南”。所有严肃的都是基于负载模拟的真实世界基准测试。您可以编写“经验法则”,但对于任何给定的系统,在较低级别的实施中可能会出现一些怪癖,从而使经验法则在他们耳边出现。
如果您的应用程序适合模拟工作,请使用各种文件系统/RAID/磁盘配置启动模拟文件语料库并在其上模拟工作负载。这将是唯一确定的方法。
(旁白:有没有人觉得听到一个名为“小”的 10MB 文件很有趣?天哪,我老了……)
简单的回答:如果您的大部分文件都是 10MB 或更大,那么我建议您使用尽可能大的集群大小,但这在空间方面可能有点浪费。
复杂的答案:您应该分析磁盘的缓存、磁盘控制器的缓存、操作系统的缓存以及实际文件及其大小。这会更好,但更难做到正确。