php开源网站 网上商城,网站建设公司做销售好不好,移动端网站建设的软件有哪些,年轻人适合开什么公司UMA
UMA中文翻译叫#xff1a;一致性内存访问
多个CPU通过同一根前端总线#xff08;FSB#xff09;来访问内存#xff08;所有的内存访问都需要通过北桥芯片来完成#xff09;#xff0c;若多个CPU访问内存的不同内存单元还是相同内存单元#xff0c;同一时刻#x…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数大于12vCPU分配应满足最小范围物理节点调用原则(最小插槽数)分配为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的场景