← 返回头版
互联网

We scaled PgBouncer to 4x throughput

2026-07-11 · 综述 ollama:qwen3.5:9b

ClickHouse Managed Postgres 团队介绍了一种优化方案,旨在解决单线程 PgBouncer 在多核 CPU 环境下的性能瓶颈。该服务默认采用单线程架构运行,在配备 16 个虚拟核心的机器上仅占用一个核心,导致其余计算资源闲置 [1]。为充分利用服务器硬件能力,ClickHouse Managed Postgres 部署了与可用核心数量成比例的 PgBouncer 进程集群,并将所有进程绑定至同一端口以启用 Linux 内核的 so_reuseport 特性 [1]。

针对因内核负载均衡机制可能引发的查询取消请求路由错误问题,该方案引入了 Peering 机制进行解决 [1]。在基于 AWS EC2 c7i.4xlarge 实例进行的基准测试中,单进程配置的 PgBouncer 峰值吞吐量约为每秒 87,000 笔交易(transactions/sec),而采用 16 个进程的集群配置后,该数值提升至约每秒 336,000 笔交易 [1]。这一改进使整体吞吐量达到原来的四倍左右 [1]。此外,CPU 利用率数据也显示出显著差异:单进程模式下 CPU 占用率仅为 9% 至 16%,而集群模式下的 CPU 利用率则提升至 52% 至 60%[1]。


PgBouncerClickHousePostgreSQLso_reuseport性能优化