RAID 0 的吞吐估算
RAID 0 没有冗余也没有写惩罚,估算最直观:读写 IOPS 约等于盘数乘以单盘 IOPS,顺序带宽约等于盘数乘以单盘带宽。正因为简单,它也适合当作理解其他级别的起点——后面的 RAID 5、6、10 都只是在同样的基数上乘一个折扣系数。但要记住这是理论上限:总线、控制器与队列深度往往先成为瓶颈。
基本信息
| 公式 | 读写 IOPS = N × 单盘 IOPS;顺序带宽 = N × 单盘带宽 |
|---|---|
| 示例(NVMe) | 4 块 NVMe(单盘 500K IOPS):理论 2000K IOPS,实际受卡与总线限制 |
| 示例(机械盘) | 4 块 15K SAS(单盘 180 IOPS):理论 720 IOPS |
| 无惩罚 | 写不放大,读写同一口径 |
| 主要瓶颈 | PCIe 通道数、控制器带宽、队列深度 |
计算过程
计算过程
# NVMe 阵列
IOPS = 4 x 500000 = 2,000,000(理论值)
顺序读带宽 = 4 x 3.5GB/s = 14GB/s(受 PCIe 带宽限制)
# 机械盘阵列
IOPS = 4 x 180 = 720
顺序带宽 = 4 x 单盘带宽 x 0.8(留控制器与背板开销)
# 校验方法:用 fio 实测并与理论值对比,差距往往来自总线与队列深度理论值与现实差距的来源
| 因素 | 影响 | 验证方式 |
|---|---|---|
| PCIe 通道数 | NVMe 阵列总带宽被封顶 | 核对 CPU 直连 lane 与卡上带宽 |
| 控制器上限 | 单卡并发请求数有限 | 查卡规格与队列深度 |
| 队列深度不足 | 并发上不去,IOPS 远低于计算值 | fio 指定 iodepth 实测 |
| 热与降频 | 长时间满负载后性能下滑 | 连续压测观察曲线 |
估算时的注意
- 区分 IOPS 与带宽:块大小不同,两者不能互相替代
- 别忽略盘的分区与文件系统开销:实际可用空间与性能都略低于裸盘
- 临时盘用 RAID 0 要写清数据来源:掉盘后需要能重新生成
- 实测优先:理论值只适合做数量级判断,承诺 SLA 前必须实测
RAID 0 阵列中任何一块盘损坏即全部数据不可用,仅用于可随时重建的数据;不要用它承载唯一副本。