云盘算基础 -NUMA

金歌  金牌会员 | 2024-8-20 05:34:21 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 918|帖子 918|积分 2754

UMA

UMA中文翻译叫:同等性内存访问
多个CPU通过同一根前端总线(FSB)来访问内存(所有的内存访问都须要通过北桥芯片来完成),若多个CPU访问内存的差别内存单元照旧相同内存单元,同一时刻,只有一个CPU可以或许访问内存
随着CPU内核越来越多,性能越来越强,现在已经有双路、四路的服务器,若是UMA架构的话,前端总线很轻易造成瓶颈
NUMA

NUMA中文翻译:非同等性内存访问
NUMA解决了UMA架构所有CPU同时访问内存时FSB性能瓶颈的题目
在NUMA出现之前,所有的CPU Core都是通过共享一个北桥芯片来读取内存,随着CPU的发展,CPU频率越来越快,焦点越来越多,北桥在相应时间上的性能瓶颈也越来越明显。
为相识决前端总线性能瓶颈的题目,于是出现了NUMA架构
在NUMA这种架构下,差别的内存器件和CPU焦点从属差别的NODE(节点),每个NODE都有本身集成的内存控制器(IMC),在NUMA内部,使用IMC Bus进行差别焦点间的通讯,差别的Node间通过QPI(快速互联通道)进行通讯
一般来说,一个内存插槽对应一个Node,须要留意的一个特点时,QPI的延迟要高于IMC Bus,也就是说,CPU访问内存有了远近之别
同一NUMA NODE内的内存访问叫本机访问,差别NODE访问叫远地访问
每一个CPU(节点)都有本身的PCIE装备(本地IO资源),和内存相似,远地访问PCIE装备相对访问本地PCIE装备存在延时
如下图,是超微某双路主板的逻辑图,可以看到,两颗CPU都有本身可以本地访问的内存,远地内存访问须要颠末CPU之间的QPI通道,每颗CPU也有本身的PCIE装备等等


NUMA在云平台(假造机上)的应用

假造机NUMA就是把QEMU模拟出来的假造节点,绑定在某颗物理CPU上,对应的内存同样绑定在该CPU的本地内存,使其与物理架构相对应,在物理上也尽可能地使用CPU访问本地内存,如许我们就可以认为假造机可以或许识别服务器NUMA拓扑
具体优化方式如下
1. vCPU数如果比一颗物理CPU核数少,那么这个假造节点就会绑定在一颗物理CPU上
如:服务器双路,每颗物理CPU为8核8线程,创建一台假造机,假造机分配的vCPU是4颗,则这台假造机的假造节点就会绑定在CPU0或CPU1上
2. vCPU数如果比一颗物理CPU核数多,那么就会分开,然后绑定在多个物理CPU上
如:服务器双路,每颗物理CPU为8核8线程,创建一台假造机,假造机分配的vCPU是12颗,那么这个假造机的假造节点就会分开,分别绑在两颗物理CPU上
3. 如果单颗物理CPU超配大概内存不足(NUMA Node内的内存不足了)了那么就须要进行负载平衡,平衡过程中会进行CPU之间的负载均衡,这时会把假造节点迁移到另一颗物理CPU上进行绑定,并且对应的内存也须要跟着迁移,保证之前的本地内存照旧本地内存。(导致NUMA资源碎片的原因:假造机开关机,新建删除假造机等)
如:一台服务器开启了10台假造机,有可能这10台假造机所使用的CPU和内存资源都是同一颗物理CPU提供的,此时该CPU若盘算性能不足,或该CPU的本地内存占用过高,那么此时就须要将该CPU上的部分假造机移动到这台服务器上的另一颗CPU上去运行(同一台服务器CPU之间的负载均衡),即:将假造节点迁移到另一颗CPU上去绑定,并且对应的内存也须要跟着迁移,如许就能保证假造节点切换绑定之后,依旧可以访问本地内存,从而保证假造机性能
4. 通过优化调度算法,使假造节点的NUMA绑定都是保持性能最佳的状态
假造机怎样拆为几个假造节点放置

对于假造机怎样拆为几个假造节点放置(即:假造机要配置几个插槽),这里要思量:
1. 假造机有几个假造节点:透传NUMA架构给假造机后,各个假造节点答应放到差别的物理节点上去(假造机内部本身可以感知)
物理NUMA架构与QEMU模拟出来的假造节点进行绑定,假造节点可以同时绑定在多颗CPU上
2. 假造机一个假造节点的vcpu个数是多少:对于每一个假造节点,那么还须要尽量放到最小范围的物理节点调用。
不能把物理CPU的节点数配置的过多,否则过多的调用会导致更多的性能开销
好比有一台4路服务器,每颗物理CPU的焦点数为8核,此时须要新建一台vCPU数为12的假造机,此时该假造机最佳分配vCPU分配为2*6,以保证假造节点尽量放到最小的物理节点调用,不能分配为3*4或4*3,由于如许会把假造节点调度的范围变大了就会增加物理机的性能开销
如果物理CPU数大于12,vCPU分配应满足最小范围物理节点调用原则(最小插槽数),分配为1*12
留意:若须要透传NUMA拓扑给假造机,则该假造机需安装性能优化工具,且配置的CPU总核数大于8核(深信服HCI)
平衡

重要是如果一个物理节点的CPU大概内存超配的环境下就会思量迁移平衡,平衡包括CPU平衡核内存的平衡,CPU平衡是通过cGroup来实现,但一个调度单元的vCPU线程迁移到另一个物理节点的时候,那么对应的内存也须要移动过来,保证之前的本地内存照旧本地内存,这里通过内核接口实现内存迁移,迁移每256M物理内存须要2s(深信服)
NUMA的实用场景
1. 内存访问旺盛的业务,NUMA能大幅度提拔性能,如果须要大量吃内存的数据库服务(Oracle、SQL、Server),编译服务等,内存访问频仍的场景,开启NUMA,盘算性能提高7%~30%
2. CPU需求密集的小应用,开启NUMA会影响一些性能,虽然造成的丧失不足以影响业务员,以是大部分应用无需思量该题目(NUMA不得当应用频仍访问CPU的场景)



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表