早期的计算机系统一直处于硬件资源匮乏的阶段,CPU,内存都是十分稀缺的资源,因此在发展SMP架构的系统的时候,早期都是使用UMA(统一内存架构)的架构的,所有的CPU访问内存的时候都是通过北桥的总线控制器统一访问内存。
内存上的数据通过总线可以以相同的延时传输给任何一颗CPU。在只有一两颗CPU,几百M内存的服务器上,这一切都不是问题。不过随着计算机技术的发展,服务器上的CPU越来越多,内存也越来越多,总线无法支撑这种UMA架构了。于是NUMA出现了。
在NUMA架构下,CPU被分为多个node,内存也被划分到不同的Node,于是本地内存,本地共享内存,远程内存等概念就出现了(不同的厂商在实现NUMA上有不同,内存的划分也会有所不同)。从图上我们也可以看出,如果CPU1要访问memory 0,那么是无法直接访问的,需要通过CPU0来访问。这种远程访问的速度肯定是比本地访问要低的多的。我们来看看一个实际的案例。这是老白的一台服务器,INTEL E8 两路服务器,每颗CPU有18核。
numa节点_简单聊聊数据库与NUMA
最新推荐文章于 2024-03-05 16:42:29 发布