要点
- 標準的な
pgbenchテストを使用して、ClickHouse が管理する Postgres を AWS RDS (16k プロビジョンド IOPS) および Aurora IO Optimized とベンチマーク比較 - 性能: ClickHouse の NVMe ベースの Postgres は、I/O 集約型ワークロードで 4.3~9 倍高速、CPU 負荷が支配的なシナリオでも 12% 高速
- 高いトランザクション処理量、低レイテンシのデータアクセス、I/O ボトルネックのない安定した性能 を求める、急成長中の AI 主導ワークロードに最適
ベンチマークの概要
pgbench を使用して包括的なパフォーマンステストを実施しました。
ベンチマーク
テスト 1: I/O 集約型 - 読み取り+書き込み (500 GB データセット)
- TPS が 326% 高い (4.3 倍高速)
- TPS が 345% 高い (4.5 倍高速)
セットアップ
| 構成 | ClickHouse が管理する Postgres | RDS with 16k IOPS | 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: I/O 集約型 - 読み取り専用 (500 GB データセット)
- TPS が 802% 向上 (9.0 倍高速)
セットアップ
| 構成 | ClickHouse が管理する Postgres | 16k IOPS の RDS |
|---|---|---|
| PG バージョン | 17 | 17 |
| vCPUs | 16 | 16 |
| RAM | 64 GB | 64 GB |
| ディスクサイズ | 1 TB | 1 TB |
| ディスクタイプ | NVMe (無制限 IOPS) | ネットワーク接続型 (16,000 IOPS) |
テスト 3: CPU 高負荷 (データがメモリに収まる)
- RDS PostgreSQL と比べて TPS が 12.3% 高い
セットアップ
| Configuration | ClickHouse が管理する Postgres | RDS PostgreSQL |
|---|---|---|
| PG Version | 17 | 17 |
| vCPUs | 2 | 2 |
| RAM | 8 GB | 8 GB |
| Disk Type | NVMe | ネットワーク接続型 (gp3) |
パフォーマンス概要
主な結果
- I/O 集約型の読み取り+書き込みワークロード: RDS (16k IOPS) および Aurora IO Optimized と比べて TPS が 4.3~4.5 倍
- I/O 集約型の読み取りワークロード: 16k IOPS の RDS と比べて TPS が 9 倍
- CPU-bound ワークロード: RDS より TPS が 12% 高い
Postgres by ClickHouse が真価を発揮する場面
- 急成長する AI 主導のワークロードを支える必要があり、高スループットのデータインジェスト、頻繁な upsert、リアルタイムの特徴量更新に加え、ClickHouse とのシームレスなインテグレーションにより OLAP ワークロード向けの分析をそのまま利用したい
- 頻繁な書き込みや更新、または読み書きが混在する処理を行う
- 安定して高性能なストレージを必要とする
- 現在、従来型のマネージド Postgres サービスの IOPS 制限に悩まされている
NVMe アーキテクチャの利点
| Aspect | NVMe ストレージ (Managed Postgres) | ネットワーク接続型 Storage (Provisioned IOPS) |
|---|---|---|
| IOPS | 10万から実質無制限 | 16,000 のプロビジョンド IOPS |
| Network hops | なし (ローカルデバイス) | すべてのディスク操作でネットワークの往復が必要 |
| Performance scaling | 同時実行性に応じて線形にスケール | プロビジョンド IOPS によって制限される |
費用対効果
- 1 ドルあたりのスループットが高い: 16k のプロビジョンド IOPS を備えた RDS や Aurora IO Optimized と比べて、4~9 倍の TPS を実現
- 予測しやすいコスト: 追加の IOPS 容量をプロビジョニングする必要がなく、無制限のローカル IOPS が含まれます
- 必要なコンピュートが少ない: 効率的な I/O により、より小さいインスタンスサイズで目標性能を実現
- 読み取りレプリカの必要性を低減: 単一インスタンスあたりのスループットが高いため、水平スケーリングの必要性を抑えられます