最适合随机读取小块的硬盘是什么

最适合随机读取小块的硬盘是什么

我们需要对大型文件(150 GB)中的 5 KB 块进行随机读取(搜索)。哪种硬盘最适合这种类型?在这种情况下,SSD 的预期性能如何?

我听说 SSD 在随机读取方面表现出色,但当块大小这么小时可能就不行了。

答案1

Dave Cheney 给出了一个很好的答案,重点强调了 SSD 的写入惩罚。

如果驱动器几乎只用于读取,那么 SSD 绝对占主导地位。从控制器和固件成熟度、稳定性能和价格等方面来看,“最佳”驱动器是英特尔 X25-M(ainstream)G2和X25-E(xtreme)。

X25-E 使用 SLC 闪存,适用于服务器。但是,如果写入负载很轻,您也可以考虑使用 X25-M 进行更重度的使用。E 的 SLC 闪存的主要优点是大大提高了写入耐久性。

您可以看到随机 4kb 块读取两种驱动器的性能。请注意图表底部的 10k RPM 机械驱动器。我将快速总结 Anantech 的结果:

  • 随机 4 KB 读取总传输速率:Western Digital Raptor 机械硬盘 ~0.7 MByte/s,Intel SATA SSD ~50+ MByte/s。
  • 随机 4 kb 读取平均延迟:WD Raptor ~17.3 毫秒,Intel SSD ~0.21 毫秒。

有几款有趣的 SSD 驱动器即将上市,但它们尚未完全准备好。英特尔不会在今年第四季度之前真正更新其 SSD。所以我会选择当前的英特尔产品线,可能连接到(快速、现代的)RAID 控制器。

Fusion I/O 是目前速度最快的驱动器。我认为未来高性能 SSD 将全部使用 PCI-Express 总线,正如 Fusion I/O 已经使用的那样。目前 Fusion I/O 非常昂贵,但如果您的工作负载是事务性的并且有大量写入,则绝对值得考虑。

答案2

我很想使用 FusionIO 驱动器(点击),我们已经测试过了,它们令人惊叹的即使与最快的 SSD 相比,它们也不便宜,也就是说,除了 RAM 驱动器之外,它们的速度与块大小无关,大约是你能获得的最快速度(>600MB/秒)。

答案3

SSD 可以很好地读取任何(合理大小)的随机块,但它们的缺点是写入数据。传统的旋转锈蚀硬盘允许您在扇区级别重写数据(传统上为 512 字节,尽管现在有更大的扇区大小),也就是说,您可以写入驱动器的最小数据在物理上是 512 字节。即使您更改了文件的 1 个字节,操作系统也会重写整个扇区(甚至可能是整个 4096 字节的块)。

SSD 有页的概念,页更大(可能超过数百千字节)。页可以按扇区大小写入,但只能擦除大小。因此,如果要更改已写入 SSD 的数据,驱动器需要读取整个页面,将其擦除(操作非常慢),然后将整个页面写回。

SSD 确实通过使用未直接暴露给操作系统的页面的额外容量并使用磨损均衡来克服这个问题,但这些只能延迟不可避免的页面擦除操作,而不能消除它。

答案4

如果您的文件只有几 GB,那么 RAM 驱动器实际上可能比 SSD 更合适且更具成本效益。

相关内容