---
source_url: https://clickhouse.com/blog/pgbouncer-clickhouse-managed-postgres
source_title: "How we scale PgBouncer in ClickHouse Managed Postgres"
source_site: "ClickHouse"
source_published_at: 2026-07-01T15:40:41.569Z
hero_image: https://clickhouse.com/_next/image?url=%2Fuploads%2FScaling_Pgbouncer_in_Click_House_ed1f77793f.jpg&w=1200&h=630&q=75
tags: database,connection-pooling,performance
generated_at: 2026-07-11T16:01:18.676Z
model: claude-haiku-4-5
---
# ClickHouse Managed Postgres、PgBouncer を複数プロセスで高速化

ClickHouse Managed Postgres は、PgBouncer の複数プロセス構成を導入し、マルチコア環境での性能を約4倍向上させた。単一プロセスの構成では CPU が低効率に使用されていたのに対し、fleet 構成により複数コアを有効活用し、スループットを大幅に改善している。

ClickHouse Managed Postgres では、PgBouncer の単一プロセスの制限を克服するため、利用可能な CPU コア数に応じた複数プロセスの fleet を運用している。PgBouncer はシングルスレッド設計であり、単一プロセスはマシンのコア数にかかわらず 1 コアのみを使用する。16 vCPU の AWS EC2 c7i.4xlarge インスタンスでテストを実施したところ、単一プロセス構成では約 87k transactions/sec でピークを迎え、256 クライアント接続時には 77k に低下するのに対し、fleet 構成は約 336k transactions/sec に到達し、約 4 倍のスループット向上を達成している。

![PgBouncer単一プロセスのCPU利用率](https://clickhouse.com/_next/image?url=%2Fuploads%2Fpgbouncer_jul2026_image1_b126444a8f.png&w=2048&q=75)

## Fleet 構成の実装方法

fleet 構成は、複数の PgBouncer プロセスが同一ポートにバインドし、`so_reuseport` を有効化することで実現される。カーネルが受信接続を各プロセスに負荷分散する。Postgres キャンセルリクエストは新規接続で送信されるため、`so_reuseport` により異なるプロセスにハンドオフされる可能性がある。この問題を解決するため、プロセス間の peering メカニズムにより、各プロセスが相互に認識し、キャンセルリクエストを正しいプロセスに転送する。プーリングは transaction モードで動作し、`max_client_conn` および `max_db_connections` はプロセス数で分割される。

## パフォーマンス改善

単一プロセス構成では、負荷時に PgBouncer プロセスが約 97% の CPU 使用率に達しながら、16 vCPU マシン全体では 10% 未満の利用にとどまっていた。fleet 構成では約 8 コアがアクティブに働く。256 クライアント接続の安定状態テストでは、単一プロセス構成のマシンが約 9% CPU で動作する一方、fleet 構成は約 52% CPU を使用する。CloudWatch メトリクスでは、単一プロセスインスタンスが約 16% の CPUUtilization 平均を記録したのに対し、fleet インスタンスは約 60% に達している。

![複数プロセスfleeitとCPU利用率の分布](https://clickhouse.com/_next/image?url=%2Fuploads%2Fpgbouncer_jul2026_image5_331a55a410.png&w=2048&q=75)

## 仕様と デフォルト設定

単一プロセスは `max_client_conn` を独自に強制し、制限を超過すると 「FATAL: no more connections allowed (max_client_conn)」 エラーを返す。ClickHouse Managed Postgres の全サーバーには、デフォルトでこの fleet 構成が搭載されている。

*この記事は元記事の事実のみに基づいて自動生成されました。*

## 出典

ClickHouse『How we scale PgBouncer in ClickHouse Managed Postgres』https://clickhouse.com/blog/pgbouncer-clickhouse-managed-postgres
（pgbench の報道による）
