Compaq SC RMS Server User Manual


 
What Happens When a Request is Received
7.4.1 Memory Limits
If memory limits are enabled (by setting the memlimit attribute of a partition or access
control) then a request is only allocated CPUs on nodes that have sufficient memory
available. RMS enforces memory limits by setting the data and stack size limits on a
process. If the process exceeds the allowed size, it is killed (and the parallel program
terminated).
Users, whose programs consume a known amount of memory each time they run, can set
their own memory limit with the environment variable RMS_MEMLIMIT. Setting this
variable (especially if the new value is much smaller than their default memory limit)
may cause their jobs to be scheduled sooner than would otherwise be the case. Users
cannot raise their memory limits above the level set by the system administrator. They
can only lower them.
The default memory limit is calculated by dividing the memory available by the number
of CPUs per node. For example, if a node has 4GB of memory and 4 CPUs then each CPU
that is allocated comes with 1GB of memory. Larger memory limits can be set but this
risks having CPUs idle through memory starvation, unless there is a plentiful supply of
jobs requesting small amounts of memory.
If memory limits are enabled, the RMS scheduler keeps track of the maximum memory
usage per node. The ratio of memory limit to memory size determines how many
requests can be present (allocated or suspended) before jobs start to page.
7.4.2 Swap Space
By default, the operating system reserves swap space as a program allocates memory.
Hence, a process requiring 1GB of memory must also have 1GB of swap space. If
memory limits are enabled, RMS does not allocate CPUs to new requests if the addition
of their maximum memory usage to that already allocated would cause the total for the
node to exceed the swap space available.
Each node normally has significantly more swap space than memory. The ratio of
memory limit to swap space determines how many requests (allocated or suspended) can
be present on each node.
Tru64
UNIX supports a lazy swap allocation policy in which swap space is only
allocated when required. If this policy is enabled then RMS uses the total memory
available on the node to limit the size and number of jobs run. This enables large
memory jobs to run on nodes with relatively little swap space.
Warning
If lazy swap allocation is enabled, there must be sufficient swap space for the
UNIX daemons and any other processes running on such nodes. Without this,
RMS Scheduling 7-5