Performance impact of local MCM memory allocation
The effect that local MCM memory allocation has on a specific application is difficult to predict. Some applications are unaffected, some might improve, and others might degrade.
Most applications must be bound to processors to get a performance benefit from memory affinity. This is needed to prevent the AIX dispatcher from moving the application to processors in different MCMs while the application executes.
The most likely way to obtain a benefit from memory affinity is to limit the application to running only on the processors contained in a single MCM. This can be done with the bindprocessor command and the bindprocessor() function. It can also be done with the resource set affinity commands and services.
When the application requires more processors than contained in a single MCM, the performance benefit through memory affinity depends on the memory allocation and access patterns of the various threads in the application. Applications with threads that individually allocate and reference unique data areas may see improved performance. Applications that share memory among all the threads are more likely to get a degradation from memory affinity.