32 [ -1; 32 - 112 000 ] on Satellite Database Server with local clients
This parameter is used to determine the amount of unused agent private memory that will be kept allocated, ready to be used by new agents that are started. It does not apply to UNIX-based platforms.
When an agent is terminated, instead of automatically deallocating all of the memory that was used by that agent, the database manager will only deallocate excess memory allocations, which is determined by the following formula:
Private memory allocated - (private memory used + priv_mem_thresh)
If this formula produces a negative result, no action will be taken.
The following table provides an example to illustrate when memory will be
allocated and deallocated. This example uses 100 as an arbitrary
setting for priv_mem_thresh.
Description of Action | Memory Allocated | Memory Used |
---|---|---|
A number of agents are running and have allocated memory. | 1000 | 1000 |
A new agent is started and uses 100 pages of memory. | 1100 | 1100 |
A agent using 200 pages of memory terminates. (Notice that 100 pages of memory is freed, while 100 pages is kept allocated for future possible use.) | 1000 | 900 |
A agent using 50 pages of memory terminates. (Notice that 50 pages of memory is freed and 100 extra pages are still allocated, compared to what is being used by the existing agents.) | 950 | 850 |
A new agent is started and requires 150 pages of memory. (100 of the 150 pages are already allocated and the database manager only needs to allocate 50 additional pages for this agent.) | 1000 | 1000 |
A value of "-1", will cause this parameter to use the value of the min_priv_mem parameter.
Recommendation: When setting this parameter, you should consider the client connection/disconnection patterns as well as the memory requirements of other processes on the same machine.
If there is only a brief period during which many clients are concurrently connected to the database, a high threshold will prevent unused memory from being decommitted and made available to other processes. This case results in poor memory management which can affect other processes which require memory.
If the number of concurrent clients is more uniform and there are frequent fluctuations in this number, a high threshold will help to ensure memory is available for the client processes and reduce the overhead to allocate and deallocate memory.