我正在尝试为我的数据库服务器(debian 7 amd-64 上的 postgres)寻找合适的 SSD 驱动器,我发现对于某些 SSD 驱动器,虽然读取速度以 MB/s 为单位,但写入速度以 IOPS 为单位。为了使事情变得更加复杂,有时顺序访问以 MB/s 为单位,而随机访问以 IOPS 为单位。
这些单位彼此之间以及与硬盘(使用传统的 MB/s)相比如何?
答案1
MB/s 表示驱动器每秒可以处理的兆字节数(以吞吐量表示)。IOPS 表示每秒可以处理多少个单一操作。
顺序访问意味着例如读取一个大文件,随机访问意味着读取不同文件的单个部分。
如果您寻找用于数据库的驱动器,您应该寻找:
企业级、商业级或服务器级 SSD,SLC(最好,但最贵)或 MLC 类型。尽量避免使用 TLC 类型的 SSD 磁盘。
至少两个,以形成 RAID 并防止数据丢失。数据库的最佳 RAID 策略是使用尽可能多的磁盘进行 RAID10。如果只有两个磁盘,请使用 RAID1(镜像)。如果您需要性能,请避免使用 RAID5 或 RAID6 进行数据库存储。SSD 的写入周期有限,在写入周期结束时,SSD 会立即失效。然后您需要拥有数据的镜像副本,以尽快替换发生故障的 SSD。
理想情况下,使用带有电池备用装置和 RAM 的 RAID 控制器来缓存均匀写入。
高 IOPS。数据库读取和写入相当多的较小事务。IOPS 比高吞吐量更能带来好处。
吞吐量。这是最不重要的一点。只有在进行备份或恢复时,高吞吐率才能为您带来好处。
根据评论更新答案:
如果您的存储位于 Oracle 支持的 Solaris 或 Illumos 或类似产品上,则软件 RAID 可以作为一种解决方案。那么就不需要硬件 RAID 控制器了,因为 ZFS 在没有硬件 RAID 控制器的情况下,可以很好地处理高 IOPS 数据库负载。硬件 RAID 控制器甚至会减慢您的设置速度。
我绝对不建议使用 Linux 软件 RAID (mdraid)。它适合高吞吐率,但 IOPS 率非常低。这对于文件服务器来说很好,但对于数据库服务器来说则不然。
答案2
一般来说,兆字节/秒是衡量驱动器吞吐量的指标,而 IOPS 表示每秒 I/O 操作数,是详细描述驱动器随机 I/O 性能的一种方式。
制造商提供的两种测量方法都存在误差。吞吐量将受到 SATA/SAS 拓扑、磁盘背板(如果存在)和 RAID 或存储控制器的限制。IOPS 通常是在理想条件下报告的,数据集有利于基准测试。
其他属性也会影响 SSD 的性能,例如延迟、耐用性、过度配置水平、接口类型、容量、缓存和写保护。
我问你是否可以提供更多关于固态硬盘应用的详细信息,以及涉及的服务器硬件和操作系统类型。这些信息将大有帮助,因为你真的无法只需安装任何固态硬盘在服务器中。设备选择也将由服务器硬件和兼容性决定。