Cache and memory affinity optimizations

The cache and memory affinity optimizations are functions of the AIX® Dynamic System Optimizer that change the settings by minimizing the amount of data that crosses the affinity domains.

The IBM® Power Systems server divides its processor and memory units into symmetric multiprocessing (SMP) affinity domains. Affinity domain refers to a group of processing units which have similar memory and cache access times. A processor socket is an example of an affinity domain. System performance is close to optimal when the amount of data crossing between the domains is minimized.

Cache affinity

Active System Optimizer (ASO) analyzes the cache access patterns based on information from the kernel and Performance Monitoring Unit (PMU) to identify potential improvements in cache affinity by moving threads of workloads closer together. When this benefit is predicted, ASO uses algorithms to estimate the optimal size of the affinity domain for the workload and uses kernel services to restrict the workload to that domain. The closer cache locations result in improved performance as compared to cache locations that are farther away. In this version of AIX Dynamic System Optimizer, only multithreaded workloads are considered for cache affinity optimization.

Memory affinity

After a workload is identified and optimized for cache affinity, ASO monitors the memory access patterns of the process-private memory of the workload. If the conditions of the workload might benefit from moving process-private memory closer to the current affinity domain, hot pages are identified and migrated closer to the current affinity domain using software tools. Hot pages are frequently accessed memory allocations. Single-threaded processes are not considered for this optimization because their kernel already adjusts the affinity of the process-private data when the thread is moved to a new affinity domain. Only workloads that fit within a single scheduler resource affinity domain(SRAD) are considered.