大家好,高性能服务器之 CPU 布局解析相信很多的网友都不是很明白,包括也是一样,不过没有关系,接下来就来为大家分享关于高性能服务器之 CPU 布局解析和的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
今天和大家一起聊聊--服务器的多处理器架构,什么意思呢?
试想一下,假如一台高性能的服务器有4个CPU,64g的内存,还有一些总线、IO等资源,服务器内部这些资源是如何布局的呢?
- 物理核心 & 逻辑核心
- 多处理器架构:SMP、NUMA、MPP
1.物理核和逻辑核
说到CPU首先想到的可能是这样的:
图1 英特尔代号为Cooper Lake的至强铂金9200处理器
该系列CPU物理封装长宽尺寸为76.0×72.5毫米,也是目前Intel史上最大的处理器,那CPU里面是什么样子呢?
CPU内部封装1个或者多个物理核,物理核有独立的各级缓存和电路结构,只有1个物理核心就是单核CPU,有多个物理核心就是多核CPU。
图2 4核CPU内部结构简图
对于处理器规格一致的服务器来说,总的物理核心数计算方法为:
物理核心数=总CPU数*单CPU中物理核心数
图3 多CPU多物理核简图
超线程是intel于2002年发布的一种技术,全名为Hyper-Threading,简写为HT技术,超线程技术最初只是应用于至强系列处理器中,之后陆续应用在奔腾系列中并将技术主流化,业界对于HT的评价不一,但是官方并未放弃超线程技术。
简单来说,HT技术可使处理器中的1颗物理核,如同2颗物理核那样发挥作用,从而提高了系统的整体性能,但是肯定也不会真的像2颗物理核那样,要不然就违背物理规律了,只是说借助于某些技术将1颗物理核的性能发挥地更好而已。
对于处理器规格一致的服务器来说,总的逻辑核心数计算方法为:
开启HT: 逻辑核心数=物理核心数=总CPU数*单CPU中物理核心数*2
未开启HT: 逻辑核心数=物理核心数=总CPU数*单CPU中物理核心数
掌握CPU&物理核心&逻辑核心三者的关系之后,可以找一台服务器看看相关配置,小试牛刀。
图4 CPU&物理核&逻辑核简图
2.多处理器架构
CPU多了就需要考虑如何设计,也就出现了几种不同的多处理器架构。
目前服务器大体可以分为三类:
- 对称多处理器结构 SMP
- 非一致存储访问结构 NUMA
- 海量并行处理结构 MPP
对于我们来说,SMP和NUMA应该接触的比较多,MPP接触的少一些。
2.1 SMP对称多处理器结构
SMP是Symmetric Multi-Processor的缩写。
对称多处理器结构是指多个CPU对称平等,共享相同的物理内存/IO等资源,因此SMP结构属于一致存储器访问结构 UMA。
图5 SMP架构简图
共享模式下所有CPU平等地使用资源,模式简单,在CPU数量不多时效率很不错,但是优点也可能变为拦路虎。
试想一种场景如果在SMP模式下为了提高服务器的处理能力,我们水平扩展了CPU数量,这些CPU通过相同的总线访问内存。
随着CPU数量的增加,相同内存地址访问冲突将明显增加,间接造成了CPU资源浪费,相关实验证明,SMP服务器最好的情况是2-4个CPU。
图6 SMP扩展-效率曲线
2.2 NUMA非一致存储访问结构
前面提到的SMP架构是一致存储器访问结构UMA,相对地就有了Non-Uniform Memory Access架构,所以NUMA结构和SMP架构的显著区别在于是否是一致对等访问内存。
NUMA架构的服务器具有多个 CPU 模块,每个 CPU 模块由多个 CPU组成,每个CPU模块具有独立的本地内存Local-Memory、 I/O等资源,可以将CPU模块称为Node。
图7 NUMA架构CPU模块内部结构
Node之间可以通过互联模块进行数据交互,因此每个 CPU 模块仍然可以访问整个系统的内存,但是此时的内存有本地和外部之分了,访问速度自然也就不一样。
访问CPU模块的本地内存将远远快于访问其他CPU模块内存,在明确这种架构带来的内存访问差异后,我们在实际开发应用程序时需要尽量减少不同 CPU 模块之间的信息交互。
图8 NUMA架构整体简图
NUMA 技术同样有缺陷,由于访问远地内存的延时远远超过本地内存,当 CPU 数量增加时,系统性能无法线性增加,换句话说增加1倍的CPU数量并不能获得1倍的性能提升,因此仍然存在扩展限制区。
2.3 MPP海量并行处理结构
MPP是Massive Parallel Processing的缩写,MPP 是另外一种系统扩展的方式,它由多个 SMP 服务器通过一定的节点互联网络进行连接,完成相同的任务,可以看作是SMP的水平扩展。
在MPP结构中多个 SMP 服务器是一种完全无共享Share Nothing)结构,因而扩展能力最好,典型的就是刀片服务器,有的文章说MPP架构很像MapReduce模式,多个SMP服务器节点之间通过互联网络实现,目前并没有统一的数据通信协议,并且这部分交互协议对用户是无感知的。
MPP架构有点像刀片服务器的感觉,每一片都是独立的,片与片直接由特定的协议进行数据交互。
图9 MPP架构简图
3 小结
文章到此结束,如果本次分享的高性能服务器之 CPU 布局解析和的问题解决了您的问题,那么我们由衷的感到高兴!
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7237.html
用户评论
终于有图片可以看清楚了,之前一直想弄懂CPU的布局
有5位网友表示赞同!
厉害!这么深入的讲解居然还用图解示范,学习一下!
有16位网友表示赞同!
原来高性能服务器的CPU是这样设计的啊,涨姿势了!
有5位网友表示赞同!
做服务器工程师的好帮手,一目了然就清楚工作原理了。
有5位网友表示赞同!
之前看文章好多技术词不懂,现在有了图片解释就更容易理解了!
有8位网友表示赞同!
这个图解真是太棒了,把复杂的操作过程简化成简单图形!
有5位网友表示赞同!
学习一下高性能服务器的CPU布局,方便日后工作!
有15位网友表示赞同!
看了这个图解,对CPU内部结构有了更清晰的认识。
有12位网友表示赞同!
感觉现在科技世界越来越奇妙了,服务器CPU能做得这么复杂!
有19位网友表示赞同!
很有帮助的文章,可以让更人了解高性能服务器的设计原理。
有19位网友表示赞同!
分享给我的IT同事,他们肯定能从中受益!
有16位网友表示赞同!
对服务器感兴趣,这篇文章正好可以满足我的好奇心!
有18位网友表示赞同!
图解非常清晰易懂,感谢51CTO提供这么好的学习资源!
有11位网友表示赞同!
以后遇到服务器问题可就更容易诊断啦!
有13位网友表示赞同!
原来高性能服务器的CPU是这样设计的,我以前总以为很简单.
有13位网友表示赞同!
希望以后能看到更多关于服务器技术方面的图解文章!
有8位网友表示赞同!
学习到很多新知识,对高性能服务器有了更深入的理解。
有12位网友表示赞同!
点赞! 这个图解很实用,能够帮助人们直观地理解CPU布局。
有8位网友表示赞同!
非常棒的文章,推荐给所有对计算机技术感兴趣的人!
有11位网友表示赞同!
51CTO真是好平台,提供很多优质的技术文章和资源!
有10位网友表示赞同!