阿里云实名账号 阿里云 ESSD vs AWS EBS vs 腾讯云 CBS:云盘 IOPS 与吞吐极限实测
搜索这个标题的用户,通常不是想看云盘术语,而是在解决三个具体问题:同样是 1TB 云盘,实际能跑到多少;达到标称性能要补哪些实例、队列和文件系统条件;把账号认证、充值方式和跨境支付成本算进去后,哪家的落地成本更可控。
先给决策结果:不要只按标称 IOPS 选盘
| 使用场景 | 更需要关注的指标 | 常见选择 | 容易踩的坑 |
|---|---|---|---|
| MySQL、PostgreSQL 高频事务 | 4KiB 随机写、写延迟、稳定 IOPS | ESSD PL2/PL3、EBS io2、CBS 高性能或增强型 SSD | 只看峰值 IOPS,忽略实例存储带宽和单盘延迟 |
| 日志、备份、媒体处理 | 顺序吞吐、突发持续时间 | gp3、高吞吐 ESSD、CBS SSD 类云盘 | 用 4KiB 测试结果推断大文件传输速度 |
| 电商、游戏数据库 | 高峰期 P99 延迟和扩容时间 | 可独立配置性能的云盘,或较高性能等级云盘 | 测试时使用空盘,生产盘占用 80% 后性能明显不同 |
| 跨境业务 | 区域可售规格、账号支付币种、税费和网络成本 | 按业务所在区域分别核价 | 拿中国内地价格推算新加坡、东京或弗吉尼亚成本 |
如果应用需要 30,000 IOPS,并不代表购买标称 30,000 IOPS 的盘就能得到 30,000。实例规格、单实例云盘带宽、队列深度、块大小、文件系统以及测试读写比例,任何一项不足都会形成上限。
一次可复现的 1TiB 云盘测试
以下是按照实际采购时常用的方法整理的对比样例。测试对象统一为 1TiB 数据盘,Linux 环境,盘内预写入两遍,避免把新建空盘的缓存表现当作持续性能。测试工具使用 fio,运行 10 分钟,前 2 分钟数据不计入结果。
fio --name=randread --filename=/data/testfile \
--size=800G --bs=4k --rw=randread --direct=1 \
--ioengine=libaio --iodepth=64 --numjobs=8 \
--runtime=600 --time_based --group_reporting
fio --name=seqwrite --filename=/data/testfile \
--size=800G --bs=1m --rw=write --direct=1 \
--ioengine=libaio --iodepth=32 --numjobs=4 \
--runtime=600 --time_based --group_reporting
| 测试对象 | 配置目标 | 4KiB 随机读 | 1MiB 顺序写 | 测试中最明显的限制 |
|---|---|---|---|---|
| 阿里云 ESSD PL2 | 约 10 万级 IOPS | 约 92,000-99,000 IOPS | 约 700-750 MiB/s | 较小实例容易先碰到实例侧存储带宽上限 |
| AWS EBS gp3 | 配置 60,000 IOPS、1,500 MiB/s | 约 56,000-60,000 IOPS | 约 1,400-1,500 MiB/s | EC2 规格必须支持对应 EBS 带宽,额外 IOPS 与吞吐分别计费 |
| 腾讯云 CBS 增强型 SSD | 约 10 万级 IOPS | 约 90,000-98,000 IOPS | 约 1,000-1,500 MiB/s | 不同地域、盘类型和容量对应的性能上限差异较大 |
注意:以上数据是同类环境下的区间样例,不是任何地域、任何实例都能直接复现的固定承诺。云厂商会调整产品规格,购买前应以目标地域控制台显示的上限为准。尤其是 AWS gp3,不同时间的旧文档可能仍写着较低上限;阿里云和腾讯云部分高性能等级也不是所有地域都有库存。
为什么买了高性能盘,实测只有标称值的一半
- 实例规格不够:这是最常见原因。云盘支持 100,000 IOPS,但实例汇总存储能力只有 50,000 IOPS,多挂几块盘也无法突破实例侧上限。
- 队列深度太低:单线程、iodepth=1 更接近低并发数据库请求,但无法用于验证峰值。要测极限,通常需要增加 numjobs 和 iodepth。
- 块大小用错:厂商 IOPS 上限多以小块随机读写为参考。使用 1MiB 块时先碰到的是吞吐上限,不可能继续线性增加 IOPS。
- 阿里云实名账号 测试文件落入缓存:未使用 direct=1,测到的可能是操作系统内存速度。测试文件过小也会产生类似误判。
- 磁盘容量影响基线:部分云盘性能与容量挂钩。购买 100GiB 小盘后直接对照 1TiB 规格测试,结果自然不同。
- 加密、快照和业务并发叠加:生产环境同时进行快照、复制、日志写入时,P99 延迟通常比独占测试更高。
排查时先查看实例监控中的云盘吞吐和 IOPS。如果多个磁盘同时在某个固定总值附近停住,优先升级实例;如果只有单盘受限,再检查云盘等级、容量和队列配置。
成本不能只比较每 GB 单价
以需要 1TiB、50,000 IOPS、1,000MiB/s 的数据库为例,实际月成本应按下面的口径核算:
| 成本项 | 阿里云 ESSD | AWS EBS | 腾讯云 CBS |
|---|---|---|---|
| 容量费用 | 按地域、容量和性能等级计价 | gp3 按容量计价 | 按地域、容量和云盘类型计价 |
| 性能费用 | 常通过选择 PL 等级或性能配置体现 | gp3 超出免费基线的 IOPS、吞吐分别收费;io2 按预置 IOPS 收费 | 取决于具体盘型及控制台可配置方式 |
| 实例增配 | 可能需要升级 ECS 才能释放云盘上限 | 需要核对 EC2 的 EBS 优化带宽 | 需要核对 CVM 的存储性能上限 |
| 快照与跨区 | 快照容量、跨地域复制另计 | 快照、Fast Snapshot Restore、跨区域复制另计 | 快照与跨地域复制按实际规则计费 |
实务中,gp3 的优势是容量、IOPS 和吞吐可以分别调整,适合容量较小但性能要求明确的负载;ESSD 和 CBS 应重点计算“为达到目标性能而购买的最低容量或等级”。如果为了获得 50,000 IOPS 被迫扩大到 2TiB,那么多买的容量也是性能成本。
建议制作三档报价:正常负载、业务峰值和故障恢复。不要按压测峰值长期购买最高规格。数据库平时只有 8,000 IOPS、促销时达到 35,000 IOPS,可以比较临时调整性能、长期预留高等级,以及读写拆分三种方案的全年费用。
账号购买、认证与支付:最容易耽误上线的环节
阿里云国际站
企业账号通常需要提交公司名称、注册国家或地区、注册地址、注册证明及联系人信息。付款卡持有人、账号主体和账单地址差异过大时,可能进入风控审核。新账号短时间内创建多台高配 ECS、购买大量 ESSD,或频繁切换登录国家,也容易触发人工核验。
国际站与中国站账号、余额、优惠和部分产品资格通常不能直接互通。业务部署在中国内地时,还要单独确认实名、备案及相关接入要求,不能因为完成国际站企业认证就默认具备内地网站上线条件。
AWS
AWS 开户时应准备可进行国际线上支付及预授权的信用卡或借记卡。虚拟卡、一次性卡、账单地址不一致、3D Secure 验证失败,都是开户或升级资源配额时的常见阻碍。新账号即使付款成功,也可能受 EC2 vCPU、io2 IOPS 或特定实例规格配额限制。
计划压测前至少提前数个工作日申请配额。只提高 EBS IOPS 配额不够,还要检查目标区域的 EC2 实例配额和可用区容量。
腾讯云国际站
企业认证资料应与注册主体一致,包括公司注册文件、授权联系人和付款信息。部分地区可用银行卡或本地支付渠道,但币种、自动扣款能力及退款路径并不相同。购买 CBS 前需要确认目标地域是否开放所需盘型,不能只依据其他地域的产品页面做预算。
充值续费时必须确认的四件事
- 预付费还是按量:压测阶段适合按量创建并及时释放;长期数据库再比较包年包月、承诺消费或节省计划。云盘与实例的优惠机制往往不是同一套。
- 自动续费范围:确认实例、云盘、快照和公网资源是否分别续费。实例续上但数据盘到期,恢复成本会远高于一次续费差价。
- 支付币种:银行卡可能产生外币转换费、跨境手续费和汇率差。报价时应把 1%-3% 的支付损耗纳入敏感性分析,具体以发卡行规则为准。
- 税务信息:企业名称、税号、账单国家不一致,可能影响发票、税费计算或付款审核。不要等到月底报销时才修改主体资料。
一个实际选型案例:跨境电商订单库
某订单系统数据量约 700GiB,平时 6,000-10,000 IOPS,大促期间达到 32,000 IOPS,顺序吞吐很少超过 400MiB/s。团队最初按“吞吐越高越好”购买高等级云盘,但压测仍停在约 20,000 IOPS。
检查后发现云盘没有达到上限,真正限制来自实例规格。升级实例后随机读提高到约 36,000 IOPS。进一步核算发现,长期保留最高云盘等级并不划算,最终方案是保留约 40,000 IOPS 的余量,将预算用于更高实例存储带宽和只读副本。
这个案例的关键不是哪家峰值数字最大,而是用业务 P99 延迟确定目标:当 4KiB 随机写达到 30,000 IOPS 时,写延迟仍需满足订单接口要求。若延迟已经超标,即使监控显示尚未触及标称 IOPS,也应调整数据库并发、日志策略或实例架构。
