memory and its memory use is capped, processes in the same PRM group as the original process are forced to page to free up memory.

When system memory use is at 100%, borrowed memory pages are returned to the owning PRM groups if needed. The time involved for the borrowed memory pages to be returned is dependent on the swap rate and the order in which old pages are paged out.

If a group is exceeding its memory shares on a system that is paging, prm2d uses proportional overachievement logic. Overachievement for a group is the ratio of memory used to memory entitlement. This value is then compared to the average overachievement of all groups. If a PRM group is overachieving compared to the average, then the number of import pages for that group is reduced. This allows other groups to start importing the newly available memory.

Groups are not allowed to exceed their memory caps.

NOTE: When an initial configuration requesting memory management is loaded (after installing or resetting PRM), PRM initializes memory resource groups (MRGs) giving all usable memory to PRM_SYS initially. Any free memory is then distributed to other PRM groups. This distribution of memory for use by your PRM groups can be affected by:

Heavy paging or swapping

A single application using over half the lockable memory on the system

Such conditions may exist if memory-intensive applications start immediately after PRM is configured—as may be the case with applications starting automatically at reboot.

You can possibly avoid these issues by:

Starting these applications in their designated PRM groups with the prmrun command

Using the PRM_SLEEP variable in your /etc/rc.config.d/prm file so that the application manager and memory manager can place processes in their configured groups before the heavy demand begins.

Reducing memory shares

If a PRM group’s memory share is reduced while the group is using most of its memory pages, the reduction is not immediately visible. The memory must be paged out to the swap device. The time involved for the reduction to take effect is determined by the memory transfer rate (for example, 2 Mbytes/second), and the order in which the old pages are paged out.

Therefore, when changing shares, give them time to take effect before implementing new shares again.

Capping memory use

You can optionally specify a memory cap for a PRM group. This cap is a hard upper bound: a PRM group cannot exceed its memory cap. Typically, you might choose to assign a memory cap to a PRM group of relatively low priority, so that it does not place excessive memory demands on the system. For information on setting a memory cap, see “Controlling memory use” (page 59) .

Implementation of shares and caps

In addition to specifying memory shares (a lower bound) for private memory, you can optionally specify a memory cap (upper bound) for a PRM group.

It is important to note the difference between memory shares and a memory cap. Shares guarantee the minimum amount of real memory that a group is allowed to consume at times of peak system load. The memory cap is an upper bound.

28 Understanding how PRM manages resources