User's Manual

Table Of Contents
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