23 种 EC2 实例上的 PostgreSQL 性能与成本对比

查看原文 HN 讨论

文章摘要

作者 Andrei(HN 用户名 anivan_)做这个基准测试的初衷,是不满于人们常被大厂案例和流行书籍”带偏”、把后端系统设计得过度复杂。他倡导”精简架构(lean architecture)”,并把这个 PostgreSQL 选型工具作为其”数字花园”中的一件作品发布出来。

测试在 AWS us-east-1 上针对 PostgreSQL 17 展开,围绕 23 种 EC2 实例类型、搭配不同磁盘选项(gp3-baseline 与 gp3-max)展开,合计约 52 种配置组合。工作负载模拟”90% 读 / 10% 写”、32 个并发连接,数据集初始规模 1 GB,测量每秒请求数(RPS)、延迟分位数和成本效率。关键结论包括:m8g.large(基于 Graviton 的 ARM 实例)是”满足 33,000 RPS 目标的最便宜选项”,约 82 美元/月即可跑出 45,515 RPS,是综合性价比之王;在原始效率上,c8i.large 以 52,203 RPS 领先;若需要更高吞吐,m8g.xlarge(约 147 美元/月、70,871 RPS)和 m8g.2xlarge(约 278 美元/月、81,451 RPS)表现强劲。整体来看,基于 Graviton 的 ARM 实例在成本指标上普遍优于 x86-64;52 种配置中有 30 种越过了 33,000 RPS 门槛,而 Graviton 实例频繁出现在实惠区间。此外,小型的 t 系列(t3、t4g)尽管便宜,但 RPS 不足 6,000,不适合生产级 PostgreSQL 负载;一个反直觉的发现是,gp3-max 磁盘配置虽然提升了吞吐,却有时反而降低了”每美元 RPS”的效率,说明在磁盘上砸钱存在边际递减。

HN 评论精华

作者本人(anivan_)在评论区积极回应,讨论几乎变成了一份”下一步该测什么”的众筹清单。