我正在努力更好地理解如何优化对NVMe的编写。
我有一个进程,它在一个批处理作业中将大量数据写入磁盘(~100 gb)。数据分布在100多个文件中。
我有多个NVMe磁盘可用,并将使用多个线程(~10)在一个进程中并行地编写单独的文件。
目前,所有的数据都写到一个NVMe磁盘上,我想知道是否可以通过并行地跨多个磁盘写入数据,或者单个NVMe设备是否能够自己处理并行写入,从而实现性能的提高?
感谢您的任何投入
发布于 2022-03-04 09:39:09
当然,NVMe规范允许类似64k的队列,每个队列都可以包含64k条目,因此规范本身允许一些非常高端的并发操作,不管实际驱动器是否支持许多不同的东西,但它们肯定会支持数百个队列和数百个队列条目。所有这些都会有帮助的。
尽管如此,本能地说,更多的驱动器会更好,但它确实取决于PCIe/PCH的淹水程度--如果写得很少,那么总线就有可能没有完全繁忙,所以在多个磁盘上乱翻可能会有一点帮助,但如果它得到了充分的利用,就像您在大顺序写入中可能看到的那样,一个磁盘可以像多个磁盘一样快速。
当然,在您考虑RAID、1/10或0之类的内容以及可能产生的影响之前,这一切都是在考虑--理想情况下,您需要这样的东西来增强弹性。
最终,你应该测试这个,这是正确的答案,但它取决于多少驱动器和多少时间,你必须做测试-但这是唯一的方法,真正知道。
https://serverfault.com/questions/1095315
复制相似问题