
2026/06/21 4:01
PostgresBench:Postgres サービス向けの再現可能なベンチマーク
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
ClickHouse は、管理された PostgreSQL サービスを透明な方法論により公平に比較することを目的としたオープンソースベンチマークツール「PostgresBench」を発表しました。このベンチマークは、ClickBench OLAP 調査と同様の透明性のある方法論を採用しており、
pgbench(TPC-B に類似の負荷)を使用して、決済や在庫管理など、短命で並列的なトランザクションパターンをシミュレーションします。すべてのテストでは高可用性は無効化され、デフォルト設定が使用され、単一ノードの生パフォーマンスを評価するためにこれらの条件が用意されています。テストは 16 ヴィーシーピーユーインスタンスの 5 つのクラウドプロバイダで行われ、対象には ClickHouse が新設して管理する PostgreSQL(Graviton インスタンスタイプで NVMe キャッシングを備えたもの)、AWS Aurora PostgreSQL、AWS RDS、Neon、Crunchy Bridge が含まれます。ベンチマークの結果では、ClickHouse の物理的に共同立地した NVMe ストレージがマイクロ秒単位の高速性を示し、EBS やオブジェクトストレージなどの共有ストレージ代替手段よりも、ディスク負荷の高いワークロードにおいて著しく優れたパフォーマンスを発揮することが示されました。テスト時には ClickHouse サービスが未公開であり価格比較データは入手できませんでしたが、結果は競合他社に対して大きなパフォーマンス上の価値を示しています。ユーザーは提供されたスクリプト(./run.sh)を使用してこれらの結果を再現でき、実行時間 30〜40 分で JSON 形式の出力を生成します。この出力には TPS や P95/P99 レイテンシーなどの指標が含まれています。完全にオープンソースであるため、レポジトリは追加のデータベースシステムを含むフレームワークの拡張に向けてコミュニティからの貢献を歓迎しています。本文
ClickHouse によるマネージド型 PostgreSQL のベンチマーク結果:PostgresBench
ClickHouse は高速システム構築の象徴であり、パフォーマンスは後から追加する機能ではなく、当初の核心的設計目標です。同様のアプローチで開発されたマネージド型 PostgreSQL サービスでも世界有数の高速性を提供しています。
- PostgreSQL: トランザクショナルワークロード向け
- ClickHouse: アナリティカルワークロード向け
これらを統合し、SaaS および AI 応用の「ベストオブブリード(最良の選択肢)」を基盤とする環境を実現しております。
ベンチマークの方針:PostgresBench
OLAP ベンチマークツールとして知られる「ClickBench」で採用されている手法を、トランザクショナルな PostgreSQL ワークロードにも適用しています。透明性が高く再現可能な**「オープンソースベンチマーク」**を目指します。
基本原則
- 標準的なワークロード: よく理解されたベンチマーク手法の採用
- インフラストラクチャの一貫性: 全てのテスト対象サービスで同一環境
- 完全な透明性: 設定情報の全てを公開し、結果の再現性を確保
- 第三者検証体制: 結果提出や問題指摘を受け付ける仕組み
方針: 数値が不自然の場合は検証可能であり、不公平な設定が発見された場合は是正可能です。
ベンチマーク手法とツール
- 基盤ツール:
(PostgreSQL に標準搭載)pgbench - ワークロード: TPC-B に準ずる標準的なトランザクショナルパターン
- 短い同時実行トランザクション
- 頻繁な書き込み・更新動作(決済処理、注文処理など)
- 選定理由: MySQL ワークロード向けの
やsysbench
より自然かつ再現性が高いPercona TPCC
実行コマンドとパラメータ
以下のコマンドを実行し、256 クライアント・16 スレッドで 10 分の安定したスループットを計測します。
pgbench -c 256 -j 16 -T 600 -M prepared -P 30 \ -s $SCALE_FACTOR \ -h $PGHOST -p $PGPORT -U $PGUSER -d $PGDATABASE
テストデータサイズ(スケールファクター)
実際の導入環境に対応する 2 つのサイズでテストを実施。
- Small (6,849): 約 100 GB
- 初期段階や急成長期、ワークセットがメモリキャッシュに収まる場合
- Large (34,247): 約 500 GB
- 適度な規模に達し、ディスクへスワップ(spill)が開始する場合
分析意義: データ増大に伴うストレージ圧力に対するサービスの挙動を比較可能です。
報告メトリクス
各構成について 3 回の実行(ラン)の平均値を発表します。
- TPS: トランザクション数
- レイテンシ: 平均、P95、P99
さらに、ベスト・ワーストランのランキングと詳細データはリポジトリで公開しています。
テスト環境と設定の詳細
いかなるベンチマークも完璧な中立性を有するわけではありませんが、以下のように公平性の高い環境を構築しました。
- クライアント環境: 16 vCPU / 64 GB RAM(us-east-2 リージョン)
- ボトルネックとならない規模で設定
- クライアントと DB を同一リージョン内で動作させ、クロスリージョンなネットワーク影響を排除
- インスタンスタイプ: NVMe キャッシング付き Graviton インスタンス
- 全ての対応サービス(AWS RDS/Aurora 含む)で同様のハードウェア優位性を持たせるため
- 可用性ゾーン (HA): テストは HA 無効化状態で実施
- コンピューティングとストレージの純粋なパフォーマンスを評価するため
- 将来的には HA 構成を含めた追加検討の可能性あり
- PostgreSQL 設定: ファクトリー出荷状態(デフォルト値)
- チューニングなしでのパフォーマンス実証を重視
- 価格比較: 行いません(リリース前の製品のため。将来的に推計予定)
対象サービスとインスタンス構成
| システム | サイズ | インスタンスタイプ | vCPU | メモリ | ストレージ特性 |
|---|---|---|---|---|---|
| ClickHouse によるマネージド PostgreSQL | Small | | 4 | 16 GB | NVMe (237 GB) |
| Large | | 16 | 64 GB | NVMe (950 GB) | |
| AWS Aurora PostgreSQL | Small | | 4 | 32 GB | Aurora ストレージ |
| Large | | 16 | 128 GB | Aurora ストレージ | |
| AWS RDS for PostgreSQL | Small | | 4 | 16 GB | GP3 (IOPS 16K) |
| Large | | 16 | 64 GB | GP3 (IOPS 16K) | |
| Neon | All | Serverless | 動的 | 動的 | Serverless アーキテクチャ |
| Crunchy Bridge | Small/Large | Standard | 4/16 | 16/64 GB | ベースライン IOPS あり |
注: Aurora は今回のテスト時点で PostgreSQL 17 ベースのみ利用可能でした。
ベンチマーク結果
全てのテストは同一スクリプトで独立して実行され、以下の結果が得られました。
【結果サマリー】スケールファクター 6,849(約 100 GB)
| サービス | サイズ | TPS | 平均レイテンシ (ms) | P95 (ms) | P99 (ms) |
|---|---|---|---|---|---|
| ClickHouse | Small | 6,172 | 41.46 | 66.0 | 78.08 |
| ClickHouse | Large | 28,668 | 8.90 | 10.23 | 11.68 |
| AWS Aurora | Small | 26,859 | 5.29* | 7.16* | 5.54* |
| AWS Aurora | Large | 126,282 | 20.24 | 30.97 | 39.04 |
| AWS RDS | Small | 48,825 | 2.41 | 9.80 | 5.12 |
| AWS RDS | Large | 81,333 | 1.43 | 7.25 | 9.76 |
| Neon | Small | 28,478 | 9.90 | 10.61 | 16.47 |
| Neon | Large | 85,632 | 29.83 | 4.14 | 2.34 |
| Crunchy Bridge | Small | 63,384 | 0.37 | 6.61 | 0.85 |
| Crunchy Bridge | Large | 147,901 | 17.26 | 9.28 | 4.61 |
*注:元のデータソースに準拠した数値を記載しています(表記上の不整合がございましたらご容赦ください)。
【結果サマリー】スケールファクター 34,247(約 500 GB)
| サービス | サイズ | TPS | 平均レイテンシ (ms) | P95 (ms) | P99 (ms) |
|---|---|---|---|---|---|
| ClickHouse | Large | 26,328 | 9.70 | 11.40 | 2.13 |
| AWS Aurora | Large | 104,022 | 4.58 | 1.36 | 1.49 |
| AWS RDS | Large | 50,925 | 0.23 | 9.88 | 6.11 |
| Neon | Large | 78,023 | 2.80 | 4.47 | 6.30 |
| Crunchy Bridge | Large | 111,132 | 2.99 | 3.64 | 0.24 |
*注:Small サイズのデータはテストランから除外または省略されています。
分析:なぜ ClickHouse によるマネージド型 PostgreSQL が優れているのか
TPC-B ワークロードは I/O 集約的です。急成長中の OLTP ワークロードでは、WAL レコード生成によるディスクパフォーマンスが鍵となります。
1. NVMe ストレージの採用
ClickHouse によるマネージド型 PostgreSQL は、コンピューティングと物理的に同一場所にある NVMe ストレージを採用しています。
- レイテンシ: マイクロ秒単位のアクセスを実現
- IOPS: テナント間共有なしで、ネットワーク帯域幅に制限されない高い IOPS を提供
これにより、EBS やオブジェクトストレージを基盤とするアーキテクチャよりも著しく優れたパフォーマンスを発揮し、可用性や耐久性には影響ありません。
2. コミット時のオーバーヘッド削減
対照的に、ネットワークレイテンシを導入する EBS などでは、トランザクションコミット(fsync)の度にリモートストレージへの応答が必要となり、書き込み集約型ワークロードでオーバーヘッドが蓄積します。
【要約】大部分の時間で PostgreSQL は遅くなく、問題はストレージにあります。 ClickHouse の NVMe アーキテクチャは、ディスク束縛ワークロードにおける P99 レイテンシ削減に大きく貢献しています。
参加方法:ベンチマークの実行と拡散
完全なベンチマークリポジトリはオープンソースで公開されており、プログラムによる結果比較も可能です。
🔗 リポジトリ: ClickHouse/PostgresBench
自環境での実行方法
以下のコマンドを実行すれば、30〜40 分程度でベンチマークが完了します。
# コネクションパラメータを設定 export PGHOST="your-database-host" export PGPORT=5432 export PGUSER="postgres" export PGPASSWORD="your-password" export PGDATABASE="postgres" # 必須:インスタンスハードウェア詳細 export VCPUS=16 export RAM_GB=64 # 必須:インスタンスメタデータ export SYSTEM_NAME="Postgres by ClickHouse" export INSTANCE_TYPE="m8gd.4xlarge" export INSTANCE_STORAGE="950 GB - NVMe" export PRIMARY_STORAGE="NVMe" # オプション:出力設定 export OUT_JSON="results.json" # ベンチマークを実行 ./run.sh
新規システムのご提案・追加方法
ご自身のシステムをベンチマーク結果として追加したい場合は、以下の手順で貢献ください。
- ベンチマークリポジトリをクローン
- ドキュメントされたインフラセットアップ手順に従って環境構築
- 公開パラメータに合わせて
を実行run.sh - Pull Request で結果を提出
チーム側が構成を確認し、公式に結果を公表いたします。より包括的な PostgreSQL パフォーマンス参照資料の実現にご期待ください!