互联网上有各种“参考资料”深入探讨在为磁盘阵列选择特定的 RAID 条带大小(4KB 到 128KB 或更大)时应考虑哪些因素,但这些资料都不是很权威,而且实际上彼此不一致。
例如:
具体来说,似乎有几个因素在起作用,与文件系统类型(FAT、NTFS 等)、文件系统簇大小、缓存策略、磁盘驱动器命令调度策略、是否可以将多个命令排队(标记排队)到相关驱动器等有关。
我正在寻找一篇权威的、数据驱动的、有参考价值的论文,它准确地说明了所有需要考虑的因素是什么,以及最终如何采用分析方法为给定的应用程序选择最佳的条带大小,而不需要通过强力尝试所有这些因素的组合来查看哪种组合能产生最佳性能。
答案1
不幸的是,你可能会发现这样的论文很难找到,即使你在浏览相关学术论文集时偶然发现了一篇,索德定律说,论文未涉及的一种情况是最接近你预期的 I/O 模式的情况。
这实际上是一个复杂的领域 - 不是复杂的,因为问题的每个部分都不是火箭科学,但很复杂,因为不同的因素可以以相当微妙的方式相互作用 - 这就是为什么你会发现一些建议存在显著的不一致(建议所基于的测试结果在很大程度上取决于测试的确切性质和它们试图模拟的 I/O 模式)。因此,找到一篇涵盖你的精确的除非您的需求非常基本(在这种情况下,更通用的建议,如“默认设置可能就足够了”),否则满足需求将是一件非常幸运的事。任何试图涵盖所有内容(甚至只是大多数内容)的论文都需要很长时间才能完成,以至于在完成之前就变得无关紧要了。
唯一真正可靠的方法是尝试几种组合。尝试在几种配置上复制应用程序的典型 I/O 负载,并查看其基准测试结果。我希望这不会显得毫无帮助,但我认为这确实是唯一可靠的方法。话虽如此:如果您提供一些您正在考虑 RAID 配置的环境的具体细节,有人可能会向您指出一篇论文或其他资源,这些资源比您已经找到的资源更适合这种环境+套件+应用程序+负载组合。
作为一个几乎与主题相关的例子,我上周在我的上网本上做了一些 RAID 测试(在确定内部 SSD 写入速度太快之后)远的速度太慢了),结果与我刚开始时的预期相差甚远(尽管部分原因是我没有意识到内部 SSD 在某些指标上到底有多糟糕!)。我不会在这里用确切的细节来烦你,因为在这种情况下我关心的 I/O 模式与你正在考虑的完全不同,但我要重申的是,我认为,如果你想要基于你对你打算构建的系统的了解进行几次基准测试,那真的没有什么可以替代的。具体的指標/建議。