【问题标题】:Why does reading from multiple SSDs results in lower throughput than reading from a single SSD为什么从多个 SSD 读取会导致吞吐量低于从单个 SSD 读取
【发布时间】:2014-08-01 21:10:08
【问题描述】:

我正在编写一个在三个 SSD 上复制数据的应用程序。然后应用程序通过将每个请求随机分配给三个 SSD 之一来处理读取请求,因此理论上应该平等地使用所有 SSD。请注意,我使用的是线程池,因此读取请求是同时处理的。

但是,当将此设置的读取吞吐量与仅单个 SSD 的读取吞吐量进行比较时,我得到了令人惊讶的结果,即 3-SSD 设置实际上具有较低的读取吞吐量。这可能是什么原因?

【问题讨论】:

  • 向我们展示一些简单的代码来重现问题,否则我们无法真正提供帮助,因为问题是由答案引起的,答案很简单“如果做得好,它应该会更快”
  • 将 SSD 设置为 Raid 0 卷,然后重复测试。

标签: performance solid-state-drive


【解决方案1】:

您可能有多个 CPU 同时处理多个进程和线程,但归根结底,您的 SSD 使用板上的同一总线。这就是你的瓶颈。

打一个非常廉价的类比:你试图用不同的盘子喂三个不同的婴儿,但你只有一个勺子。

如果并行化很重要,也许使用集群/云可能会为您解决问题。

【讨论】:

  • 我同意这个答案。您的 3 个 SSD 很可能连接到同一个控制器,而控制器就是瓶颈。另一种可能性是,驱动程序未编写为有效处理多磁盘访问。当然,也总是有可能是你的编码搞砸了,你的阅读器线程相互阻塞。
猜你喜欢
  • 2021-05-04
  • 1970-01-01
  • 2021-03-28
  • 2016-12-08
  • 1970-01-01
  • 2015-01-10
  • 2020-05-18
  • 2020-07-02
  • 1970-01-01
相关资源
最近更新 更多