注目★★★★★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会員向けに掲載しています。
クレカ不要・いつでも解約