我使用的是postgreSQL 9.3数据库,并在设置中增加了shared_buffers和effective_cache_size。
postgreSQL总是占用这么大的内存,还是只在需要的时候使用?
我正在亚马逊EC2实例上运行我的数据库,我将使用一个CloudWatch自定义度量来监视内存,现在我正在考虑它,如果我在配置中设置的内存总是被保留的话,即似乎在cloudWatch度量中使用。
如果是这样的话,我如何监控postgreSQL的实际使用内存?
发布于 2014-10-28 09:20:11
shared_buffers在启动时是静态的,从不调整大小。effective_cache_size只是对优化器的一个提示。它从来没有分配过。它只是暗示了正在发生的事情。所以shared_buffers就是你所看到的。
发布于 2014-10-28 09:30:01
shared_buffers是静态分配的共享缓存,所有PostgreSQL后端共享。
除此之外,每个后端都有用于查询计划、查询文本、准备语句、游标等的私有内存。它还有一些查询工作内存,由work_mem控制,用于内存中的排序/联接/等,还有用于索引构建之类的maintenance_work_mem。
PostgreSQL作为一个整体总是使用比shared_buffers更多的东西。它还有其他用于许多事情的小型共享内存段,以及每个后端工作内存。
https://dba.stackexchange.com/questions/81254
复制相似问题