无效的输入。不支持特殊字符。
虽然业界通常使用“每 TB 成本”($/TB) 来衡量存储设备的性价比,但在实现特定吞吐量时,工作负载的 IO 大小对所需存储容量有着决定性影响。
计算存储性价比时,不应假设所有 IO 都相同。当吞吐量至关重要时,IO 大小才是真正的成本决定因素。由于机械延迟对性能影响较大,小块随机 IO 会大幅降低 HHD 的吞吐量密度——这意味着,您不得不通过购买额外的容量来勉强满足 MB/s 的吞吐量要求。
本博客共分为两篇,我将通过量化的数据展示这种性能影响在 HDD 上会以多快的速度急剧恶化,然后阐明为何采用 G9 QLC NAND 的美光 6600 ION SSD 等 QLC SSD 才是正确的选择。
IO 大小对存储性能的影响
比较 QLC 和 HDD 在存储应用中的成本时,IO 特性在很大程度上决定了为实现特定吞吐量所需的实际成本。为理解这一效应,我们首先分析在典型 HDD 中,吞吐量密度如何随 IO 大小的变化而变化。
IO 大小与吞吐量密度
吞吐量密度以 (MB/s)/TB 为单位,是一种衡量存储性能的指标,与应用的规模无关。通过一个结合了延迟与传输速率的简单模型,即可描述吞吐量密度随 IO 大小变化的函数关系。实际应用中的 IO 大小呈对数分布(KiB → GiB),因此 IO 大小以 log₂ 为单位表示。
图 1 显示了一款典型的 28TB HDD 的吞吐量密度曲线。该曲线呈 S 形,在 IO 大小较小时,主要受延迟影响,而在 IO 大小较大时,则受传输速率影响。中点为 1.8 MiB,当 IO 大小变小时,吞吐量会迅速下降。该曲线可使用以下公式建模:
A⋅I/(B+I)
其中,A = 传输速率,B = 延迟 × 传输速率(中点),I = IO 大小。
基于这条性能曲线,下一步就是确定:要维持观测到的吞吐量,需要多少物理容量。
IO 吞吐量所需的容量
实现特定吞吐量所需的容量,是决定成本的一个关键因素。该因素可表示为 TB/(MB/s),即吞吐量密度的倒数。
图 2 显示了 28TB HDD 在不同 IO 大小下,实现 1MB/s 吞吐量所需的成本。其函数形式为:1/log(IO 大小),因此,当 IO 大小较小时,成本会迅速增加。
图 2 (28TB HDD) 显示:
- 在 1MiB IO 下,要实现 1MB/s 吞吐量,需要 0.4TB(约占 HDD 容量的 1.5%)。
- 在 4KiB IO 下,实现相同吞吐量需要 70TB(约为 2.5 个 HDD 的容量)。因此,4KiB IO 所需容量(成本)为 1MiB IO 的 160 倍。
这意味着在 HDD 上,4 KiB IO 所需容量(成本)约为 1 MiB IO 的 160 倍。
QLC SSD 的性能优势
QLC SSD 不受机械延迟的影响,因此即使在 IO 大小较小的情况下,其吞吐量密度依然很高。
图 3 显示了针对容量优化的 QLC SSD 的读写吞吐量密度:
- 即使在 IO 大小较小的情况下,读取吞吐量密度依然很高。
- 写入吞吐量密度虽然较低,但仍然比 HDD 高出许多。
- 示例:QLC 上 64KiB 随机写入的吞吐量密度可达 6.7 MB/s/TB,超过 HDD 上 256MiB IO 的吞吐量密度。
QLC 吞吐量的容量成本
这些性能差异的直接结果是:QLC 实现相同吞吐量所需容量更低。
图 4 显示了实现 1MB/s 所需的 TB 数(成本)。
- 在 4 KiB 写入情况下,QLC 仅需约 1.2 TB,大约为 HDD 的 1/60。
- 在 1 MiB IO(读写比例为 2:1)情况下:
- QLC 仅需约 0.041 TB
- HDD 需要约 0.43 TB
结语
与 HDD 相比,QLC SSD 在 IO 大小较小的情况下性能更高,可大幅降低所需容量,从而实现更低的整体成本。即使在 IO 大小为 1MiB 时,QLC 也仅需要 HDD 的 1/10 容量,即可提供相同的吞吐量。如果只根据存储介质的每 TB 成本 ($/TB) 来评估存储成本,就会掩盖这些影响。尽管实际工作负载中的 IO 大小呈分布状态,但这些影响仍可能产生重大作用。
本博客的第二部分即将发布,敬请期待。我们将在第二部分中深入探讨基于 QLC 技术的 SSD,比如美光 6600 ION SSD。