AIX memory affinity support
IBM® POWER® processor-based platform SMP hardware systems contain modules that are capable of supporting single, dual, or multiple processor chips depending on the particular system. Each of these modules contains multiple processors and the system memory is attached to these modules. While any processor can access all of the memory in the system, a processor has faster access, and higher bandwidth when addressing memory that is attached to its own module rather than memory attached to the other modules in the system.
The AIX® operating system provides
memory affinity by attempting to allocate memory for a process from the module that contains the
processor that caused the page fault. When memory affinity is enabled, each module has its own
virtual memory manager resource pool, vmpool
, that contains one or more memory
pools. Each memory pool has its own page replacement daemon, lrud
. The amount of
memory in each pool is based on how much memory is available in the module or how much memory is
allocated to the virtual memory manager (VMM) by the hypervisor layer. In AIX 7.1 and later, the restricted
memory_affinity
vmo
tunable parameter must not be disabled. The MEMORY_AFFINITY
environment variable can be used to configure the placement of user memory.
MEMORY_AFFINITY
environment variable as follows:
MEMORY_AFFINITY=MCM
This behavior is propagated across a fork. However, for
this behavior to be retained across a call to the exec function, the variable
must be contained in the environment string passed to the exec function call. Related information
The vmo command and VMM page replacement tuning.
The bindprocessor command or subroutine.