gpt4 book ai didi

parallel-processing - 从多个硬盘并行读取

转载 作者:行者123 更新时间:2023-12-04 06:59:11 24 4
gpt4 key购买 nike

我正在编写一个处理大量数据(千兆字节)的应用程序。我正在考虑将数据拆分到多个硬盘驱动器并并行读取。我想知道我会遇到什么样的限制——例如,是否可以从 4 或 8 个硬盘驱动器并行读取,如果磁盘 I/O 是限制因素,我会获得大约 4 或 8 倍的性能?我应该注意什么?相关文档的指针也很受欢迎——谷歌没有出现太多。

编辑:我应该指出我已经看过 RAID,但性能没有我希望的那么好。我打算用 C/C++ 自己写这个。

最佳答案

很好地拆分数据并从 4 到 8 个驱动器并行读取不会使吞吐量增加 4 到 8 倍。您还需要考虑其他因素。

  • 如果您在应用程序中读取数据,则可能需要线程从不同的硬盘读取数据。
  • Windows 提供了重叠和非重叠的读写数据到硬盘的方法。看看使用它是否会增加吞吐量。同样的方式 *nux 也有读/写方法。
  • 在单个内核/处理器上,线程似乎并行运行,但其顺序是底层的。使用多核可以并行读取多个线程,但通常操作系统决定运行什么以及何时运行。因此,要读取如此多的线程可能会降低性能而不是提高。
  • 如果您检查任何硬盘的规范,您会看到它提供随机访问时间和顺序访问时间。因此,根据您的数据,您可能需要检查这些参数。
  • 当您将数据拆分到不同的驱动器时,您需要记住,您的应用程序需要同步如何将数据填充为有意义的信息。如果您使用线程,另外的线程应该是同步的。
  • 您可能会获得具有高数据读/写速度的最先进的硬盘,但您的其他硬件可能是薄弱环节。因此,您可能使用的是低端主板或 RAM,它们可能无法让您获得最佳速度。
  • 关于parallel-processing - 从多个硬盘并行读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2144761/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com