A Memory Allocation Policy for the Balance of Access Latency Among Multiple Memory Nodes in NUMA Architecture
Hui-Juan LI,Zhong-Zhi LUAN,Hui WANG,Hai-Long YANG,De-Pei QIAN
DOI: https://doi.org/10.11897/SP.J.1016.2017.02111
2017-01-01
Abstract:Non-uniform memory access (NUMA) is a computer memory design used in multiprocessing,where the memory access time depends on the memory location relative to the processor.Modern data centers and the scientific computing clusters widely adapt the NUMA architecture due to its low latency of local memory accessing,which is achieved by partitioning the whole memory into multiple nodes and each memory node is connected to a processors' memory controller.However,this partitioning make the memory management much complicated.To achieve a low memory access latency,the default Linux memory policy chooses to allocate the physical memory pages from the memory node where the process is running.Unfortunately,this allocation policy may potentially result in the unfairness among the processes,e.g.,due to the process scheduling,one process with many local memory access may execute on remote node,which leads to the performance variation.To solve this problem,this paper proposes a node access latency indicator.Based on the indicator,we design a memory allocation policy assuring the balance of access latency among memory nodes in NUMA architecture,and implement it in the Linux kernel.To obtain the latency is platform dependent,but the policy in system kernel could be universal.The real system based evaluation results show that our proposal can reduce the unfairness up to 34 % (with an average of 16%) while keeping a stable performance,compared to Linux's default memory allocation algorithm.