Postgresql占用内存问题,查询提示out of memory,求大神帮忙解释

arcticJian 2015-10-21 03:02:49
最近在在一个使用Postgresql数据库的项目中遇到一个问题,使用应用程序查询数据时,提示out of memory 的错误。
先说下环境:
操作系统: Windows server 2008 R2 64位系统
内存: 4GB

我的分析如下:
1,可能是数据库连接太多,导致内存不足,提示这个信息。
但是看了下PG数据库的进程并不多,应该不是连接太多导致的内存不足。
2,查询的数据结果较多,导致内存不足,提示这个信息。
如果是这个原因导致的,那么应该调整PG数据库的配置文件postgresql.conf里的哪个参数,能够查询更多的数据呢?

另外,我再另外一台8G内存(空闲的有4G)的计算机上测试,把postgresql.conf里的shared_buffers属性由1024MB调整为2048MB后,PG的服务无法启动。
查询资料没有看到过有这个限制。是不是因为我安装的Postgresql数据库是32位版导致的?

跪求大神帮忙解答。
...全文
7970 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
丁劲犇 2019-02-27
  • 打赏
  • 举报
回复
shared buffer 太大了。不能按照Linux的建议,50%物理内存。一般12.5-25%即可
qianshouhuanghun 2019-01-11
  • 打赏
  • 举报
回复
Open up the ‘ODBC Data Source Administrator’ window after running it as administrator. Click on the ‘Data Source’ that you are using and click on ‘Configure’. In the ‘PostgreSQL ANSI ODBC Driver (psqlODBC) Setup’ window, click on ‘Datasource’. Ensure that the checkbox ‘Use Declare/Fetch’ is checked and then click on ‘OK’ and close the subsequent windows. This setting resolves the issue. Below is the screenshot
qq_30487665 2016-05-31
  • 打赏
  • 举报
回复
尔康: --另外,我再另外一台8G内存(空闲的有4G)的计算机上测试,把postgresql.conf里的shared_buffers属性由1024MB调整为2048MB后,PG的服务无法启动。 这个问题:pg在启动服务时,首先会创建六个进程,在这个时候会占用shared_buffers设置的两倍内存,设置为2G,启动服务时就需要4G内存,所以服务启动会失败。
舞台中央的我 2016-02-20
  • 打赏
  • 举报
回复
有 解决对策了吗 想看看 我的也出这个问题了
huguangshanse00 2015-10-24
  • 打赏
  • 举报
回复
机器内存并不大。查询对应的表数据量多大? 执行语句是什么样子的?work_mem多大? 这些都涉及内存。out of memory 是申请内存而系统内存不足报错。
arcticJian 2015-10-21
  • 打赏
  • 举报
回复
自己先回复一下,增加点人气。大神们,你们都在哪???

972

社区成员

发帖
与我相关
我的任务
社区描述
PostgreSQL相关内容讨论
sql数据库数据库架构 技术论坛(原bbs)
社区管理员
  • PostgreSQL社区
  • yang_z_1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧