#### NUMA简介

numa把一台计算机分成多个节点(node),每个节点内部拥有多个CPU，节点内部使用共有的内存控制器，节点之间是通过互联模块进行连接和信息交互。

#### NUMA和SMP的区别（CK老师的解释）

NUMA和SMP的区别在性能上。SMP是对称多处理，NUMA是非统一内存访问。

SMP的每一颗处理器到内存的距离都是一样的。传统上所有处理器都连接着北桥芯片(即内存控制器)，这样的结构是对称的，可以认为是SMP。

现在，内存控制器做在处理器里面了，这样每一个处理器都可以控制一部分内存。要访问另一颗处理器控制的内存，就必须通过处理器的通信线路，这样访问自己的内存就快，访问别人的内存就慢，这样就存在一个处理器亲和力的问题。解决方法就是内核线程要绑定到一个处理器的一个核心中，不要老跑来跑去。

有这样一个结论：任何针对单核处理器所做的优化，在多核上面都要创建一个新的Memory Model。

对内存有兴趣的同学可以看两个文档：**All Programmer should Know About Memory**和**Tutorial On Memory Model**。前提是要先清楚**Sequential Consistency**的概念。