NVMe 并行写入

NVMe 并行写入

我正在尝试更好地了解如何优化写入 NVMe。

我有一个流程,在一次批处理作业中将大量数据 (~100 gb) 写入磁盘。数据分布在数百个文件中。

我有多个可用的 NVMe 磁盘,并且将在一个进程中使用多个线程(~10)并行写入单独的文件。

目前,所有数据都写入单个 NVMe 磁盘,我想知道是否可以通过并行将数据写入多个磁盘来实现潜在的性能改进,或者单个 NVMe 设备是否可以自行处理并行写入?

感谢任何意见

答案1

当然是 N​​VMe规格允许 64k 个队列,每个队列可以包含 64k 个条目 - 因此规范本身允许一些非常高端的并发操作 - 实际驱动器是否支持这么多是另一回事,但它们肯定会支持数百个队列和数百个队列条目。所有这些都会有所帮助。

尽管如此,直觉上认为驱动器越多越好,但这实际上取决于 PCIe/PCH 的充斥程度 - 如果有很多小写入,那么总线可能没有完全繁忙,因此跨多个磁盘进行涂抹可能会有所帮助,但如果它得到充分利用,正如您可能在大量连续写入中看到的那样,那么单个磁盘可能与多个磁盘一样快。

当然,这一切都是在考虑 RAID 1/10 或 0 之类的东西以及它们可能产生的影响之前 - 理想情况下,您需要类似的东西来实现弹性。

最终你应该测试一下,这是正确的答案,但这取决于你有多少个驱动器和多少时间来进行测试 - 但这是真正了解的唯一方法。

相关内容