开发者社区> 问答> 正文

postgresql内存一直增长,两个session占用150G内存

已解决

pg版本为8.2.15
OS为SUSE 11 SP3

业务使用dbcp连接数据库,datasource已设置autocommit为true,执行的唯一操作就是简单的insert语句,一条insert最多带1000条数据。

服务器物理内存为256G。使用top发现两个postgresql进程占用物理内存RES分别为83G和66G。这两个进程对应的业务进程如上面所说,对数据库的操作只有insert。插入频率小于1秒。数据入库正常,其他进程可以正常查询到插入的数据。为什么这两个postgresql进程占用这么多内存?缓存没有释放?

我在本地实验时发现同样数据量的情况下插入语句执行的频率越大内存增长的越快。但是业务只涉及insert语句并设置了autocommit,为什么看着像语句执行完没有释放内存?

展开
收起
似苏三 2017-10-31 17:38:32 10342 0
2 条回答
写回答
取消 提交回答
  • 阿里云PostgreSQL和Greenplum内核开发
    采纳回答

    RSS是83G,那么SHR是多少? PG确实存在insert内存不断增大的现象,建议断开连接,再次Insert

    2019-07-17 21:41:50
    赞同 展开评论 打赏
  • 公益是一辈子的事, I am digoal, just do it. 阿里云数据库团队, 擅长PolarDB, PostgreSQL, DuckDB, ADB等, 长期致力于推动开源数据库技术、生态在中国的发展与开源产业人才培养. 曾荣获阿里巴巴麒麟布道师称号、2018届OSCAR开源尖峰人物.
    2019-07-17 21:41:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
PostgresChina2018_陈河堆_PostgreSQL基于PaaS平台的高可用集群方案V3 立即下载

相关镜像