在阅读 SSD 驱动器规格时,MB/s 和 IOPS 之间有什么区别?

zaa*_*deh 1 bandwidth storage hard-drive ssd

我正在尝试为我的数据库服务器(debian 7 amd-64 上的 postgres)寻找合适的 SSD 驱动器,我发现对于某些 SSD 驱动器,虽然读取速度以 MB/s 为单位指定,但写入速度以 IOPS 为单位。更复杂的是,有时顺序访问以 MB/s 为单位,随机访问以 IOPS 为单位。

这些单位如何相互比较以及与硬盘(使用旧的 MB/s)相比如何?

mga*_*iel 14

MB/s 表示驱动器每秒可以处理多少兆字节作为吞吐量。IOPS 表示每秒可以处理多少个单一操作。

顺序访问意味着例如读取一个大文件,随机访问意味着您正在读取不同文件的单个部分。

如果您要查找用于数据库使用的驱动器,您应该查找:

  1. SLC(最好,但最昂贵)或 MLC 类型的企业级、企业级或服务器级 SSD。尽量避免使用 TLC 类型的 SSD 磁盘。

  2. 至少其中两个,以形成RAID并防止数据丢失。数据库的最佳 RAID 策略是您能负担得起的磁盘数量的 RAID10。如果您只有两个磁盘,请使用 RAID1(镜像)。如果您需要性能,请避免将 RAID5 或 RAID6 用于数据库存储。SSD 的写入周期有限,在写入周期结束时,SSD 会立即失效。然后,您希望拥有数据的镜像副本以尽快替换出现故障的 SSD。

  3. 理想情况下,使用带有电池备份单元和 RAM 的 RAID 控制器来缓存甚至写入。

  4. 高 IOPS。数据库读取和写入相当多的较小事务。与高吞吐量相比,您从 IOPS 中获益更多。

  5. 吞吐量。这是最不重要的事情。只有在进行备份或恢复时,您才能从高吞吐率中受益。

根据评论更新答案:

  • 如果您的存储位于 Oracle 支持的 Solaris 或 Illumos 或类似设备上,则软件 RAID 可能是一种解决方案。不需要硬件 RAID 控制器,因为 ZFS 在没有硬件 RAID 控制器的情况下可以很好地处理高 IOPS 数据库负载。硬件 RAID 控制器甚至会减慢您的设置速度。

  • 我绝对不建议使用 linux 软件 RAID (mdraid)。它适用于高吞吐率,但它的 IOPS 率非常低。这对文件服务器很好,但对数据库服务器则不然。