返回数说广场
0
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
分享
评论
热门数说


