简而言之
- 使用标准的
pgbench测试,对 由 ClickHouse 托管的 Postgres、AWS RDS (16k 预配置 IOPS) 和 Aurora IO Optimized 进行了基准测试 - 性能:ClickHouse 基于 NVMe 的 Postgres 在 IO 密集型工作负载下可实现 4.3–9 倍性能提升,在 CPU 密集型场景下快 12%
- 非常适合快速增长的 AI 驱动型工作负载,这类工作负载需要高事务速率、低延迟数据访问,以及不受 IO 瓶颈影响的稳定可预测性能
基准测试概览
pgbench 进行了全面的性能测试,以评估中等并发和高并发场景下的工作负载性能。
基准测试
测试 1:IO 密集型——读+写 (500 GB 数据集)
- TPS 提升 326% (快 4.3 倍)
- TPS 提升 345% (快 4.5 倍)
测试设置
| 配置 | 由 ClickHouse 托管的 Postgres | 配备 16k IOPS 的 RDS | Aurora IO Optimized |
|---|---|---|---|
| PG 版本 | 17 | 17 | 17 |
| vCPU | 16 | 16 | 16 |
| RAM | 64 GB | 64 GB | 128 GB |
| 磁盘大小 | 1 TB | 1 TB | 1 TB |
| 磁盘类型 | NVMe (无限制 IOPS) | 网络附加存储 (16,000 IOPS) | 网络附加存储 (IO Optimized) |
测试 2:IO 密集型 - 只读 (500 GB 数据集)
- TPS 高出 802% (速度快 9.0 倍)
设置
| 配置 | 由 ClickHouse 托管的 Postgres | 配备 16k IOPS 的 RDS |
|---|---|---|
| PG 版本 | 17 | 17 |
| vCPU | 16 | 16 |
| RAM | 64 GB | 64 GB |
| 磁盘大小 | 1 TB | 1 TB |
| 磁盘类型 | NVMe (IOPS 不受限) | 网络附加存储 (16,000 IOPS) |
测试 3:CPU 密集型 (数据可放入内存)
- TPS 比 RDS PostgreSQL 高 12.3%
设置
| 配置 | 由 ClickHouse 托管的 Postgres | RDS PostgreSQL |
|---|---|---|
| PG 版本 | 17 | 17 |
| vCPU | 2 | 2 |
| RAM | 8 GB | 8 GB |
| 磁盘类型 | NVMe | 网络附加存储 (gp3) |
性能概述
关键发现
- IO 密集型读写工作负载:与 RDS (16k IOPS) 和 Aurora IO Optimized 相比,TPS 高出 4.3–4.5 倍
- IO 密集型读取工作负载:与 16k IOPS 的 RDS 相比,TPS 高出 9 倍
- CPU 密集型工作负载:TPS 比 RDS 高出 12%
Postgres by ClickHouse 何时更具优势
- 支撑快速增长的 AI 驱动型工作负载,这类工作负载需要高吞吐量的数据摄取、频繁的 upsert、实时特征更新,以及通过与 ClickHouse 的无缝集成直接获得面向 OLAP 工作负载的分析能力
- 需要频繁写入、更新,或混合读写操作
- 需要稳定可预测的高性能存储
- 当前受传统托管 Postgres 服务的 IOPS 限制
NVMe 架构优势
| 方面 | NVMe 存储 (Managed Postgres) | 网络附加存储 (预配置 IOPS) |
|---|---|---|
| IOPS | 10 万到几乎不设上限 | 预配 16,000 |
| 网络跳数 | 零 (本地设备) | 每次磁盘操作都需要一次网络往返 |
| 性能扩展性 | 随并发提升近似线性扩展 | 受预配 IOPS 限制 |
成本效益
- 单位成本吞吐量更高:与配备 16k 预配置 IOPS 的 RDS 和 Aurora IO Optimized 相比,TPS 可提高 4-9 倍
- 成本更可预测:无需额外预配 IOPS 容量——已包含无限本地 IOPS
- 计算资源需求更低:凭借更高的 I/O 效率,使用更小的实例规格即可达到目标性能
- 对只读副本的需求更少:更高的单实例吞吐量可降低对横向扩缩容的需求