2013-02-25 31 views
6

我知道,通过postgresql.conf,我可以限制PostgreSQL特定部分的内存使用情况,如共享内存或工作内存,但有没有办法限制PostgreSQL服务器的内存使用总量?我没有找到一个配置属性,这样做...限制PostgreSQL的总内存使用情况

顺便说一句,我将需要在Windows Server 2008计算机上运行它。

回答

6

你是什么意思“全部”内存?这是你分配给各个池的总和。

因此,简而言之...不要设置各种池/缓冲区太大,这是您的总内存限制。

+1

我看到...我希望有一些限制,我可以设置和放心,PostgreSQL永远不会通过它,但我想这将不得不做。在设置这些内存限制时,我是否应该留意哪些缺陷? – 2013-02-25 23:13:34

+1

work_mem是单个排序或其他内存密集型操作(散列操作等)可用的最大内存量。每个查询可以有o个,1个或更多个这些操作。假设你的平均查询有2个或更少的排序等,你可以得到一个大量使用的机器可能会看到的最大内存的总体思路是max_connections * work_mem * 2。个人postgresql后端仅使用大约6MB,除非你有一个非常高的max_connections个人后端,没有排序等,不要加起来多。 – 2013-02-26 08:02:27

+0

请注意,有时候更少,所以不要盲目增加所有这些数字,因为如果设置为过高的水平,许多实际上是性能处罚。 – 2013-02-26 15:21:28