今天我想和大家聊聊服务器多处理器架构。在查阅相关资料的过程中,我发现这是一个容易被批评的话题,这让我感到恐慌。
[[330849]]
物理核心逻辑核心多处理器架构:SMP、NUMA、MPP1.物理核和逻辑核说到CPU,首先想到的可能是这样的:
[[330850]]
图1 代号Cooper Lake的英特尔Xeon Platinum 9200处理器
该系列CPU的物理封装尺寸为76.072.5毫米,这也是Intel历史上最大的处理器。那么CPU内部是什么样子的呢?
CPU内部封装有一个或多个物理核心。物理核心具有独立的各级缓存和电路结构。如果只有一个物理核心,则为单核CPU,如果有多个物理核心,则为多核CPU。
图2 4核CPU内部结构简化图
对于相同处理器规格的服务器,物理核心总数的计算公式为:
物理核心数=CPU总数*单CPU物理核心数
图3 多CPU、多物理核的简化图
超线程是Intel于2002年发布的一项技术,它的全称是Hyper-Threading,缩写为HT技术。超线程技术最初仅应用于Xeon系列处理器,后来应用于Pentium系列并使该技术成为主流。业界对于HT的评价褒贬不一,但官方并没有放弃超线程技术。
简单来说,HT技术可以让处理器中的一个物理核心像两个物理核心一样发挥作用,从而提高系统的整体性能,但它肯定不会真的像两个物理核心一样发挥作用,否则就违背了物理定律。它只是意味着物理核心的性能可以通过某些技术的帮助更好地发挥出来。
对于相同处理器规格的服务器,逻辑核心总数的计算公式为:
打开HT:逻辑核心数=CPU总数*单CPU物理核心数*2
HT: 未启用。逻辑核心数=物理核心数=CPU总数*单CPU物理核心数
掌握了CPU的物理核心和逻辑核心的关系后,就可以找一台服务器查看相关配置并尝试一下。
图4 CPU物理核心和逻辑核心简化图
2.多处理器架构当CPU数量过多时,就需要考虑如何设计,于是出现了几种不同的多处理器架构。
目前服务器大致可以分为三类:
对称多处理器结构SMP非均匀存储访问结构NUMA大规模并行处理结构MPP对于我们来说,应该多接触SMP和NUMA,少接触MPP。
2.1 SMP对称多处理器结构SMP 是对称多处理器的缩写。
对称多处理器结构是指多个CPU对称、平等,共享相同的物理内存/IO等资源。因此,SMP结构属于统一内存访问结构UMA。
图5 SMP架构图
在共享模式下,所有CPU平等地使用资源。该方式简单,CPU数量较少时效率很好。然而,优势也可能成为障碍。
想象一个场景,如果在SMP模式下,为了提高服务器的处理能力,我们水平扩展CPU的数量,这些CPU通过同一条总线访问内存。
随着CPU数量的增加,同一内存地址的访问冲突会明显增加,间接造成CPU资源的浪费。相关实验证明,SMP服务器的最佳情况是2-4个CPU。
图6 SMP扩容-效率曲线
2.2 NUMA非一致存储访问结构前面提到的SMP架构就是一致的内存访问结构UMA。相反,存在非统一内存访问架构。因此,NUMA结构与SMP架构的显着区别在于是否是一致的点对点访问内存。
NUMA架构服务器具有多个CPU模块。每个CPU模块由多个CPU组成。每个CPU模块都有独立的本地存储器、I/O等资源。 CPU模块可以称为Node。
图7 NUMA架构CPU模块内部结构
Node之间可以通过互连模块进行数据交换,因此每个CPU模块仍然可以访问整个系统的内存,但此时内存分为本地和外部,访问速度自然不同。
访问CPU模块的本地存储器将比访问其他CPU模块的存储器快得多。明确了这种架构带来的内存访问差异后,我们在实际开发应用时需要尽量减少不同CPU模块之间的信息交互。
图8 NUMA架构总体图
NUMA 技术也有缺陷。由于访问远程内存的延迟远远超过本地内存,因此当CPU数量增加时,系统性能无法线性提升。换句话说,CPU 数量增加1 倍并不会带来1 倍的性能提升。所以还有一个扩展的禁区。
2.3 MPP海量并行处理结构MPP是大规模并行处理的缩写。 MPP是系统扩展的另一种方式。它由多台SMP服务器通过一定的节点互连网络连接起来,完成同一任务。可以看作是SMP的横向扩展。
在MPP结构中,多个SMP服务器是完全共享(Share Nothing)的结构,因此它们具有最好的可扩展性。典型的例子是刀片服务器。有文章说MPP架构和MapReduce模式很相似。多个SMP服务器节点通过Internet实现目前还没有统一的数据通信协议,这部分交互协议对于用户来说是感知不到的。
MPP架构感觉有点像刀片服务器。每个切片都是独立的,每个切片通过特定的协议直接与数据交互。
图9 MPP架构图
3 小结
好了,文章到此结束,希望可以帮助到大家。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7797.html
用户评论
听说多处理器架构可以大大提升服务器处理速度!想了解更多关于这个技术细节啊。
有17位网友表示赞同!
我一直以为服务器只有一个CPU,原来还有这种多处理器架构?学习新知识了!
有15位网友表示赞同!
对于需要高运算能力的企业应用来说,多处理器架构确实很吸引人。
有16位网友表示赞同!
感觉商用服务器越来越智能化了,能更好地满足不同用户的需求。
有16位网友表示赞同!
多核处理器的服务器应该就能很好地应对大数据分析的任务吧?
有5位网友表示赞同!
想问问这种架构有什么缺点嘛,比如成本更高之类的吗?
有11位网友表示赞同!
这篇文章会不会介绍一些具体的CPU厂商和他们的多处理器架构方案?
有20位网友表示赞同!
学习一下服务器的cpu架构知识,感觉很有用!也许以后开发的时候能用到。
有9位网友表示赞同!
这个技术发展进步真的很快啊!以前用的服务器配置怎么看都跟不上时代节奏了...
有12位网友表示赞同!
多处理器架构一定能提升用户体验吧?比如网页加载速度什么的都能变快。
有16位网友表示赞同!
现在很多企业都注重性能优化,这种架构是不是很符合他们的需求呢?
有16位网友表示赞同!
想知道多处理器架构在不同规模企业的应用场景有哪些?
有18位网友表示赞同!
这篇文章能帮助我更好地了解服务器的发展趋势吗?
有5位网友表示赞同!
希望文章也能介绍一下未来的发展方向,多处理器架构还能怎么创新提高性能?
有14位网友表示赞同!
看标题就觉得很有意思,希望能深入浅出地讲解多处理器架构的原理。
有13位网友表示赞同!
多处理器架构肯定比单核CPU效率高得多吧,这是很明显的优势。
有20位网友表示赞同!
这种技术进步对我们普通人有什么影响呢?会不会让智能家居更加智能化?
有13位网友表示赞同!
服务器cpu架构的变化也反映了整个科技发展越来越快啊。
有13位网友表示赞同!
我需要了解多处理器架构的成本效益,才能更好地进行采购决策。
有12位网友表示赞同!