Hasty Briefsbeta

双语

Postgres locks do not scale

3 days ago
  • #incident-postmortem
  • #aws-rds
  • #postgres
  • 数据库CPU系统时间飙升至100%,导致服务中断,没有明显原因如新部署或AWS事件。
  • 尝试通过RDS重启数据库失败,持续一小时后,通过安全组阻止实例连接作为替代缓解措施。
  • 连接排空后数据库恢复,但仍面临高用户CPU时间;通过识别并移除昂贵查询得以解决。
  • 根本原因是锁竞争:由于高峰时段同步的机器人事件,15k个进程等待GIN索引扩展,触发死锁检查和日志爆炸。
  • 关键教训包括监控等待队列、隔离GIN索引,并为突发负载设计,以防止同步操作导致系统故障。