集群架构
l SMP/MPP/NUMA都是cpu级别的架构,区别是在于访问内存,I/O和外部中断等资源方式的不同。SMP是对称访问和共享访问所有资源,MPP是独立访问各自资源,完全没有共享资源,如果是综合则是NUMA(部分本地内存/部分远端内存)。这就引起一致性等处理方式不同。
è 一致性
SMP模式:数据一致性是由硬件专门管理的,这样做比较容易实现,但成本较高。使用了MESI协议处理多个处理器之间的Cache一致性。该协议也被称为Illinoisprotocol,MESI协议在SMP处理器系统中得到了广泛的应用。
MPP模式:节点之间的一致性是由软件来管理,因此,它的速度相对较慢,但成本却低得多;
NUMA模式:在共享内存时维持高速缓存一致性的开销非常大(譬如ccNUMA),所以NUMA无法保证系统性能线性增加,譬如8倍cpu带来3倍性能提升。Intel提出了另外一种MESI协议的变种,即MESIF协议,由Intel的QPI(QuickPath Interconnect)技术引入。主要解决ccNUMA处理器结构的Cache共享一致性问题,这种结构通常使用目录表,而不使用总线监听处理Cache的共享一致性。值得注意的是,MESIF协议解决主要的问题是ccNUMA架构中SMP子系统与SMP子系统之间Cache一致性。而在SMP处理器系统中,依然需要使用传统的MESI协议。Nehelem EX处理器也可以使用MOESI协议进一步优化SMP系统使用的Cache一致性协议,由此可见CMP的某种实现方式就是SMP。
è 节点通信
NUMA和SMP:节点互联机制是在同一物理服务器内部,NUMA访问本地内存和SMP访问互斥内存是必须等待。所以性能无法线性提升。