Postgres Postmaster does not scale
3 months ago
- #Performance
- #Postgres
- #Scalability
- Recall.ai每周处理数百万场会议,自动完成会议纪要和CRM更新等任务。
- 会议同步(整点或半点开始)会影响媒体处理基础设施。
- 会议开始带来的高负载峰值需要即时计算容量,以避免数据丢失。
- Postgres的postmaster进程作为单线程循环,在高连接速率下成为瓶颈。
- Postgres连接建立延迟(10-15秒)可追溯至postmaster的CPU饱和问题。
- 调查发现postmaster的fork操作成本高昂,尤其在连接高波动时更为明显。
- 在Linux中启用大页机制减少了页表项开销,使连接吞吐量提升20%。
- 用于并行查询的后台工作进程给postmaster增加了压力,加剧了延迟问题。
- 解决方案包括为EC2实例启动添加随机延迟,以及减少并行查询的突发压力。
- postmaster的单线程特性是Postgres大规模部署时的根本性瓶颈。