4、性能与成本的天平:IOPS、吞吐量、延迟与每GB成本的关系
做存储选型这么多年,我见过太多人一上来就问:“这个盘多少钱?” 或者 “这个阵列IOPS多少?” 其实,这两个问题单独拎出来都没意义。你想想看,一块NVMe SSD延迟几十微秒,但每GB成本是HDD的十几倍;而HDD虽然便宜,遇到高并发场景直接卡死。说白了,存储选型就是在性能与成本之间找平衡点。
这一节,我们就把IOPS、吞吐量、延迟、每GB成本这四个核心指标拆开揉碎,看看它们到底怎么互相制约。
4.1 三个性能指标,一个成本指标
先统一一下口径。我习惯把存储性能拆成三个维度:
- IOPS:每秒能处理多少个I/O请求。适合衡量随机读写能力,比如数据库、OLTP场景。
- 吞吐量:每秒能传输多少数据量(MB/s或GB/s)。适合衡量大块顺序读写,比如视频编辑、日志归档。
- 延迟:单个I/O请求从发出到完成的时间(毫秒或微秒)。直接影响应用响应速度。
而成本指标,我们通常看每GB有效容量的价格($/GB)。注意是“有效容量”,不是裸容量——RAID开销、快照、副本都要算进去。
核心公式:
总拥有成本(TCO)= 硬件采购 + 电力 + 运维 + 机房空间
单位成本 = TCO ÷ 有效容量(GB)
4.2 四者之间的制约关系
我在项目中遇到过不少“翻车”案例。比如某客户为了省钱,全用SATA HDD跑Oracle数据库,结果IOPS不够,业务高峰期查询超时。后来换了全闪存,IOPS上去了,但预算超了30%。
为什么会这样?因为这四个指标天然互斥:
| 指标 | 追求方向 | 代价 |
|---|---|---|
| IOPS | 越高越好 | 需要更多闪存或更短寻道时间,成本上升 |
| 吞吐量 | 越高越好 | 需要更宽的总线或更多磁盘并行,功耗增加 |
| 延迟 | 越低越好 | 需要更快的介质(如NVMe),每GB成本飙升 |
| 每GB成本 | 越低越好 | 通常意味着用HDD或大容量QLC,性能下降 |
你想想看,如果一块盘同时做到百万IOPS、10GB/s吞吐、10微秒延迟、0.1美元/GB,那其他厂商都不用活了。现实是,你必须在其中做取舍。
4.3 典型介质对比
我整理了一份常见存储介质的性能与成本对照表。嗯,这里的数据是我基于实际项目经验估算的,不同厂商会有浮动,但趋势不会变:
| 介质类型 | 典型IOPS(随机读) | 典型吞吐量(顺序读) | 典型延迟(随机读) | 每GB成本(美元) |
|---|---|---|---|---|
| NVMe SSD(TLC) | 500K – 1M | 3 – 7 GB/s | 10 – 50 μs | 0.15 – 0.30 |
| SATA SSD(TLC) | 50K – 100K | 500 – 550 MB/s | 100 – 200 μs | 0.08 – 0.15 |
| 10K RPM HDD | 150 – 200 | 150 – 200 MB/s | 4 – 8 ms | 0.02 – 0.05 |
| 7.2K RPM HDD | 70 – 120 | 100 – 150 MB/s | 8 – 15 ms | 0.01 – 0.03 |
| 磁带(LTO-9) | N/A(顺序访问) | 400 MB/s(压缩后) | 数十秒(寻带) | 0.005 – 0.01 |
我的建议:不要只看单盘性能。实际生产环境中,RAID、网络、协议开销都会拉低性能。比如NVMe SSD标称百万IOPS,但经过FC SAN或iSCSI后,实际能到30万就算不错了。
4.4 如何找到你的“甜点”
我曾经帮一个金融客户做存储规划。他们的核心交易系统需要高IOPS,但历史归档只需要低成本大容量。我的做法很简单——分层:
- 热数据层:全闪存(NVMe),承载在线交易,延迟<100μs,IOPS>50万。
- 温数据层:混合阵列(SSD + HDD),承载近3个月的历史查询,IOPS>5000即可。
- 冷数据层:大容量HDD或对象存储,承载超过3个月的数据,每GB成本压到最低。
这样整体TCO比全闪存方案降低了60%,而核心业务性能一点没降。说白了,没有最好的存储,只有最合适的存储。
4.5 避坑指南
我曾经踩过的坑:
- 只看IOPS不看延迟:某次选型,供应商说阵列能到100万IOPS,结果实际延迟飙到20ms。后来发现那是纯顺序读的测试数据,随机写场景下完全不是一回事。
- 忽略写放大:SSD的写放大因子(WAF)会显著降低实际IOPS。比如标称100万IOPS的盘,WAF=3时实际只能到33万。
- 成本只算硬件:每GB成本如果只算硬盘价格,那HDD确实便宜。但加上电力、散热、运维人力,5年TCO可能比SSD还高。
4.6 知识体系图
下面这张图帮你理清四个指标的关系,以及如何根据业务场景做决策:
4.7 实战:用公式算清账
最后,我分享一个自己常用的成本精算公式。假设你要采购一批存储,用来跑一个混合负载:
有效容量 = 裸容量 × (1 - RAID开销) × (1 - 快照预留比例)
每GB成本 = (硬件总价 + 5年电费 + 5年运维费) ÷ 有效容量
性能满足度 = min(实际IOPS ÷ 需求IOPS, 实际吞吐 ÷ 需求吞吐)
举个例子:
- 采购10块NVMe SSD,每块3.84TB,单价$800。裸容量38.4TB。
- RAID 5(3+1)开销25%,快照预留10%。有效容量 = 38.4 × 0.75 × 0.9 = 25.92TB。
- 硬件总价$8000,5年电费约$2000,运维费$3000。总成本$13000。
- 每GB成本 = 13000 ÷ (25.92 × 1024) ≈ $0.49/GB。
这个数字比单看硬盘单价高了不少吧?嗯,这就是为什么我总说“精算”很重要。
小技巧:如果你在做方案对比,建议把每GB成本和每IOPS成本都算出来。前者看容量性价比,后者看性能性价比。两个维度交叉,选型就清晰多了。