暂无图片
返回数说广场
winter_tech
2023-05-24 知行合一
OOM的大致原因, 1、分区表特别多, 需要注意分区的catalog cache占用大量内存(老版本可能会读入每个子分区的结构到catalog cache). 特别需要注意并不是explain里面已经裁减了就代表relcache也裁剪了 2、业务使用了大量长连接, 并且没有设置连接的生命周期, 或者生命周期很长. 连接时间越长, 访问的元数据积累越多, 导致每个会话的私有内存较大,PG会缓存对象 3、业务到数据库的总连接数过多, 因为每个连接都有私有内存, 连接越多, 消耗的内存越多, 最终可能导致OOM,使用连接池/控制生命周期 4、设置了较大的work_mem或hash_mem_multiplier, 并且有大量SQL使用了hash agg或hash join, 导致内存消耗过多.
0
暂无图片 0
198
分享

评论

热门数说