近年来,云原生数据库部署日益普及,如何在AWS EC2上选择最合适的实例类型以运行PostgreSQL,既保证性能又控制成本,成为众多开发者和企业关注的焦点。近日,一位技术博主在Hacker News上发布了题为“Show HN: PostgreSQL performance and cost across 23 EC2 instance types”的深度评测报告,对23种主流EC2实例类型进行了系统性的PostgreSQL基准测试,揭示了性能与成本之间的微妙平衡。
测试背景与方法
该评测采用标准化PostgreSQL 15版本,在相同的存储配置(通用型SSD gp3,预置IOPS为3000)和网络环境下运行。测试工具选用pgbench,模拟典型的OLTP负载(混合读写、事务处理),并分别记录了每秒事务数(TPS)、延迟(P95/P99)、CPU利用率以及每小时实例成本。实例类型覆盖了通用型(m6i、m7g)、计算优化型(c6i、c7g)、内存优化型(r6i、r7g)以及突发性能型(t3、t4g)等家族,包括Intel、AMD和Graviton(ARM)三种处理器架构。
关键发现:性能与性价比的“甜蜜点”
1. Graviton实例性价比突出
在所有测试中,基于AWS自研Graviton2/3处理器的实例(如m7g、c7g、r7g)在同等vCPU和内存规格下,性能普遍优于Intel(Ice Lake)和AMD(Milan)实例。例如,m7g.large与m6i.large相比,TPS提升约12%至18%,而每小时成本却低约15%至20%,综合性价比领先。
2. 计算优化型实例(c系列)更适合纯OLTP负载
对于高并发、短事务的OLTP场景(如电商秒杀、游戏排行榜),计算优化型实例表现出色。c6i.2xlarge在测试中达到约8500 TPS,而同等成本下的通用型m6i.2xlarge仅为6200 TPS。这意味着如果应用对内存需求不高(例如32GB已足够),选择c系列实例可以节省大量资金。
3. 内存优化型(r系列)并非总是必要
许多开发者倾向于选择大内存实例以容纳更多数据缓存。但评测显示,当工作集(working set)大小小于实例可用内存的60%时,r系列与通用型m系列的性能差异不足10%,而成本却高出30%以上。仅在数据量极大、全内存工作负载下(如实时分析),r系列才真正体现价值。
4. 突发性能型(t系列)的“温柔陷阱”
t3/t4g实例虽然初始成本极低(例如t4g.small每小时仅0.0168美元),但它们的CPU配额机制(CPU Credits)在高负载下会迅速耗尽。当连续运行pgbench约20分钟后,t3.medium的TPS从初始的1500骤降至300,延迟从5ms飙升至150ms。评测建议:除非负载极低且间歇性(如开发环境或低流量博客),否则不要在生产中使用t系列。
5. ARM架构的良好兼容性
得益于PostgreSQL 15对ARM架构的优化,所有Graviton实例在测试中均未出现兼容性错误或异常行为。对于追求绿色计算和更低成本的组织,ARM是值得考虑的方向。
成本效益分析
评测以“每TPS成本”作为核心指标,即每小时实例费用除以该实例稳定状态下的TPS。结果显示:
- 性价比之王:c7g.large(2vCPU, 4GB)的每TPS成本约为0.00009美元,是所有实例中最低的。适合中小规模OLTP应用。
- 次优选择:m7g.large(2vCPU, 8GB)每TPS成本约0.00012美元,通用性强,适合大多数Web应用。
- 高端性价比:r7g.large(2vCPU, 16GB)每TPS成本0.00018美元,适合内存密集但预算有限的情景。
- 最差选择:r6i.2xlarge(8vCPU, 64GB)因成本过高(每小时0.504美元),而TPS仅比c7g.2xlarge高约5%,每TPS成本是后者的2.3倍。
值得注意的是,小型实例(如t4g.nano、t3.micro)虽然绝对成本极低,但由于性能瓶颈和不可预测的配额限制,不适合作为基准参考。
实践建议
基于评测结果,博主给出了若干可操作建议:
- 新项目默认选Graviton:除非有特定的x86依赖,否则优先使用m7g/c7g系列。
- 按负载类型选实例系列:OLTP高并发选c系列,OLAP或大数据量选r系列,Web应用选m系列。
- 避免过度配置内存:先通过监控实际内存使用率确定需求,不要盲目选择大内存实例。
- 测试后再确定性能基准:每个应用的工作模式不同,建议使用自己的SQL负载进行小规模测试后再选择实例。
- 考虑预留实例和Spot实例:结合评测中的基准数据,如果愿意预付费1年,成本可再降低30%以上;Spot实例则适合可中断的工作负载,成本仅为按需的1/3。
行业启示
本次评测虽然仅针对23种实例类型,但涵盖了三代处理器架构和AWS主流的实例家族,具有很强的代表性。PostgreSQL作为开源关系型数据库的标杆,其性能与云基础设施的适配程度直接影响用户的TCO。随着AWS持续推出新型实例(如Intel Sapphire Rapids和Graviton4),预计未来同类测试的性价比差距将进一步拉大。
最终,无论是初创公司还是大型企业,在云上运行PostgreSQL时都应摒弃“一刀切”的选型思维,借助类似评测建立自己的性能成本模型,才能实现真正的降本增效。