PostgreSQL查询周期性突发延迟异常求助(含LWLock:BufferContent锁竞争现象)
PostgreSQL查询周期性突发延迟异常求助(含LWLock:BufferContent锁竞争现象)
各位大佬,我们工作中遇到了个有点摸不着头脑的问题:每隔几个小时,我们的tasks表就会出现查询延迟飙升的情况——先是CPU占用率上去,紧接着就爆发一波LWLock:BufferContent锁竞争,过一会儿又会恢复到正常状态。这是RDS性能洞察的监控图表:
CPU占用上升、BufferContent锁竞争出现后恢复稳态的监控图表
我们已经做了一大堆优化工作,虽然从直观感受来看,这类异常的发生频率和严重程度都降低了不少,但问题始终没彻底根除。
一开始我们发现有些查询没命中索引,于是我专门花时间调整,确保所有针对这个表的查询都走索引扫描或者仅索引扫描。比如我们常用的查询是这样的:
SELECT COUNT(1) FROM tasks WHERE status = 'PENDING' AND NOT deleted
我们也已经为这类查询配置了对应的索引...
备注:内容来源于stack exchange,提问作者mattbasta
相关产品推荐
相关产品推荐

