Asayomu Tech
注目★★★★Hacker News

PgBouncer を 16 プロセス化し 4 倍のスループット達成—単一スレッド制約を so_reuseport で突破

30秒で把握

  • 1PgBouncer を 16 プロセス並列化・so_reuseport でカーネル負荷分散・スループット 87k → 336k トランザクション/秒に 4 倍向上
  • 2単一プロセスは 1 コア 97% CPU 使用・16vCPU マシン全体 10% 利用に対し、16 プロセス構成は 8 コア活用・52% 利用率達成
  • 3プロセス間 peering でクエリキャンセルを正確化・接続バジェット分割で Postgres 過剰接続防止・ClickHouse Managed Postgres で標準構成化

要約

ClickHouse Managed Postgres は単一スレッドの PgBouncer を複数プロセスで並列化し、スループットを約 4 倍 (87k → 336k トランザクション/秒) に向上させた。カーネルの so_reuseport で同一ポートに複数プロセスをバインドし、入力接続を負荷分散する一方、クエリキャンセルはプロセス間の peering で正しいセッション所有者へ転送する。接続バジェット (max_client_conn / max_db_connections) をプロセス数で分割し、Postgres への過剰接続を防ぐ。同一スペック 16vCPU インスタンスで単一プロセスは 1 コアに張り付き全体は 10% 利用率に対し、16 プロセス構成は 8 コアを活用して 52% 利用率に達する。

あなたへの影響

この記事が日本のエンジニアに与える影響と、今日取るべきアクションは、Personal会員向けに掲載しています。

7日間無料で読む

クレカ不要・いつでも解約

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。