内容提要
本文基于TPC-H/TPC-DS SF1000基准,在StarRocks存算分离架构下横评AWS Graviton(arm64)与x86实例。结果显示Graviton4(m8g)性价比最优,同代相比x86省34%-52%,且性能领先。建议首选m8g,内存密集选r8g/r7g,x86生态选m8i。
延伸解读
为什么 Graviton 在分析负载上能“便宜又更快”
文章指出,StarRocks 这类分析负载主要受内存带宽和单核效率约束,而非 SIMD 向量宽度。Graviton4 的 L2 缓存翻倍、内存带宽提升 75%,加上单价更低,使其在 TPC-H/TPC-DS 上同时实现性能领先和成本节省。即使 arm64 版本尚未启用 SVE2 等优化,仍能胜过 x86,说明内存子系统对这类负载的关键作用。
选型时需注意的测试边界
测试基于 StarRocks 存算分离架构,CN 无状态,数据在 S3,因此切换架构成本低。但结果仅适用于类似负载和配置:3×CN、本地 Data Cache 统一、单可用区、按需价格。实际部署若使用 Savings Plans 或预留实例,价格差异可能变化;内存密集型或计算密集型场景(如正则、压缩)可能需要重新评估,因为 arm 的 SIMD 优化空间尚未释放。
老代 Graviton 的性价比仍值得关注
文章数据显示,两代前的 Graviton2(r6g)在 TPC-DS 上的价格性能仍高于最新 Intel r8i,而 Graviton3(r7g)的性价比指数也优于 Intel 和 AMD 的旗舰。这意味着对于预算有限或已有 Graviton 实例的团队,升级到最新代并非唯一选择,老代实例在特定负载下仍具成本优势,可作为过渡或混合部署的考量。
Q&A
StarRocks 在 AWS Graviton(arm64)和 x86 实例上的性能对比结果如何?
根据 TPC-H 和 TPC-DS SF1000 基准测试,Graviton 系列(m9g/m8g/r8g/r7g)在性能上包揽前四,其中 m9g 在 TPC-H 上最快,m8g 在 TPC-DS 上最快。
在 StarRocks 存算分离架构下,哪个 AWS 实例的性价比最高?
Graviton4 通用型实例 m8g 的性价比最高,在 TPC-H 和 TPC-DS 双基准中均排名第一,性价比指数为 100。
Graviton 相比同代 x86 实例在成本上能节省多少?
以 TPC-H 为例,m8g 对比同代 x86 实例 m8i 可节省约 34% 的成本,对比 r7i 节省约 46%。
StarRocks 从 x86 迁移到 Graviton 的改造成本高吗?
不高。StarRocks 官方提供 arm64 构建,且存算分离架构下 CN 无状态,替换计算层不影响数据(数据在 S3),迁移近乎零改造。
为什么 Graviton 在 StarRocks 分析负载上性能表现优异?
因为这类负载主要受内存带宽约束,Graviton 的内存子系统(如 Graviton4 的 12 通道 DDR5)和单核处理效率较高,且实例单价更低,因此性能与性价比均占优。
对于内存密集型 StarRocks 工作负载,应该选择哪些实例?
建议选择 r8g 或 r7g,它们属于内存优化型实例,提供 8GB/vCPU 的内存,适合大 Join 和聚合等内存密集型场景。
如果必须使用 x86 架构,StarRocks 应该选择哪个实例?
如果必须绑定 x86 生态,推荐 m8i,它是 x86 实例中价格性能最好的一款。
StarRocks 在 Graviton 上运行稳定吗?
稳定。StarRocks 提供官方 arm64 构建,本次测试中所有 Graviton 集群均使用官方 3.5.19 镜像正常运行,数据加载与查询无异常。