A newer version of this documentation is available. Click here to view the most up-to-date release of the Greenplum 4.x documentation.


Sets the amount of memory (in number of MBs) that all postgres processes of an active segment instance can consume. If a query causes this limit to be exceeded, memory will not be allocated and the query will fail.

Note that this is a local parameter and must be set for every segment in the system (primary and mirrors).

To prevent over allocation of memory, this calculation can estimate a gp_vmem_protect_limit value that is applicable in a wide variety of situations:

(SWAP + (RAM * vm.overcommit_ratio)) .9 /number_segments_per_server

For example, on a segment host with 8GB of swap space, 128GB physical memory, 8 primary segment instances, and a 10% buffer, the calculation would be:

(8 + (128 * .5) * .9 / 8 = 8GB = 8192MB
Note: The default value for the operating system parameter vm.overcommit_ratio is .5.
Value Range Default Set Classifications
integer 8192 local