现代的服务器类系统通常是将多个多核芯片放在一个系统中构建的。每个芯片都有一个本地DRAM(动态随机存取存储器)模块;它们一起被称为节点。节点通过高速互连连接,系统完全一致。这意味着,对于程序员来说,内核可以向其节点的本地内存发出请求,也可以向其他节点的内存发出请求。关键的区别是远程请求将花费更长的时间,因为它们受到更长的线路延迟,并且在通过互连时可能必须跳过几个跳。因此,内存访问时间的延迟是非均匀的,因为它取决于请求的起源和目的地。这样的系统称为非统一内存访问(或NUMA)。
具有NUMA特征的系统早在20世纪80年代就已经构建,随着硬件操作系统的发展,对NUMA的支持也在不断发展。现代NUMA系统与旧的截然不同,因此我们必须重新考虑对它们的假设,并重新考虑如何构建支持NUMA的操作系统。本文评估了一个具有代表性的现代NUMA系统的性能特征,描述了Linux中与NUMA相关的特性,并提出了一种内存管理算法,该算法大大减少了内存访问时间并提高了性能。
没有发现记录