cpu三大架构 numa smp mpp

2023-11-11

系统的性能很大程度上依赖于cpu 硬件架构的支持。从系统架构来看,目前的商用服务器大体可以分为三类,即:

对称多处理器结构(SMP:Symmetric Multi-Processor)

非一致存储访问结构(NUMA:Non-Uniform Memory Access)

以及海量并行处理结构(MPP:Massive Parallel Processing)

SMP(Symmetric Multi-Processor)

所谓对称多处理器结构,是指服务器中多个CPU对称工作,无主次或从属关系。各CPU共享相同的物理内存,每个 CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器访问结构(UMA:Uniform Memory Access)。对SMP服务器进行扩展的方式包括增加内存、使用更快的CPU、增加CPU、扩充I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存储)。

SMP服务器的主要特征是共享,系统中所有资源(CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服务器的主要问题,那就是它的扩展能力非常有限。对于SMP服务器而言,每一个共享的环节都可能造成SMP服务器扩展时的瓶颈,而最受限制的则是内存。由于每个CPU必须通过相同的内存总线访问相同的内存资源,因此随着CPU数量的增加,内存访问冲突将迅速增加,最终会造成CPU资源的浪费,使 CPU性能的有效性大大降低。实验证明,SMP服务器CPU利用率最好的情况是2至4个CPU。

NUMA(Non-Uniform Memory Access)

由于SMP在扩展能力上的限制,人们开始探究如何进行有效地扩展从而构建大型系统的技术,NUMA就是这种努力下的结果之一。利用NUMA技术,可以把几十个CPU(甚至上百个CPU)组合在一个服务器内。

NUMA服务器的基本特征是具有多个CPU模块,每个CPU模块由多个CPU(如4个)组成,并且具有独立的本地内存、I/O槽口等。由于其节点之间可以通过互联模块(如称为Crossbar Switch)进行连接和信息交互,因此每个CPU可以访问整个系统的内存(这是NUMA系统与MPP系统的重要差别)。显然,访问本地内存的速度将远远高于访问远地内存(系统内其它节点的内存)的速度,这也是非一致存储访问NUMA的由来。由于这个特点,为了更好地发挥系统性能,开发应用程序时需要尽量减少不同CPU模块之间的信息交互。利用NUMA技术,可以较好地解决原来SMP系统的扩展问题,在一个物理服务器内可以支持上百个CPU。比较典型的NUMA服务器的例子包括HP的Superdome、SUN15K、IBMp690等。

但NUMA技术同样有一定缺陷,由于访问远地内存的延时远远超过本地内存,因此当CPU数量增加时,系统性能无法线性增加。如HP公司发布Superdome服务器时,曾公布了它与HP其它UNIX服务器的相对性能值,结果发现,64路CPU的Superdome (NUMA结构)的相对性能值是20,而8路N4000(共享的SMP结构)的相对性能值是6.3。从这个结果可以看到,8倍数量的CPU换来的只是3倍性能的提升。

MPP(Massive Parallel Processing)

和NUMA不同,MPP提供了另外一种进行系统扩展的方式,它由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个SMP服务器(每个SMP服务器称节点)通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(Share Nothing)结构,因而扩展能力最好,理论上其扩展无限制,目前的技术可实现512个节点互联,数千个CPU。目前业界对节点互联网络暂无标准,如 NCR的Bynet,IBM的SPSwitch,它们都采用了不同的内部实现机制。但节点互联网仅供MPP服务器内部使用,对用户而言是透明的。

在MPP系统中,每个SMP节点也可以运行自己的操作系统、数据库等。但和NUMA不同的是,它不存在异地内存访问的问题。换言之,每个节点内的CPU不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为数据重分配(Data Redistribution)。

但是MPP服务器需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。目前一些基于MPP技术的服务器往往通过系统级软件(如数据库)来屏蔽这种复杂性。举例来说,NCR的Teradata就是基于MPP技术的一个关系数据库软件,基于此数据库来开发应用时,不管后台服务器由多少个节点组成,开发人员所面对的都是同一个数据库系统,而不需要考虑如何调度其中某几个节点的负载。

#lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1 #每个core 有几个线程
Core(s) per socket: 4 #每个槽位有4个core
Socket(s): 2 #服务器面板上有2个cpu 槽位
NUMA node(s): 2 #nodes的数量
Vendor ID: GenuineIntel
CPU family: 6
Model: 44
Stepping: 2
CPU MHz: 2128.025
BogoMIPS: 4256.03
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0,2,4,6 #对应的core
NUMA node1 CPU(s): 1,3,5,7

参考:https://www.cnblogs.com/tongyishu/p/12745557.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cpu三大架构 numa smp mpp 的相关文章

  • linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)

    linux内核的三种调度方法 xff1a 1 xff0c SCHED OTHER 分时调度策略 xff0c 2 xff0c SCHED FIFO实时调度策略 xff0c 先到先服务 3 xff0c SCHED RR实时调度策略 xff0c
  • Oracle环境变量配置

    情况描述 最近在配置plsql环境后 plsql总是连接不上 由于对自己的记忆力过度自信 导致这个简单的问题不能得到解决 现在记录下来作为以后的参考 一 客户端安装 官网下载orcle对应版本的客户端 然后执行安装 二 环境变量 需要配置以
  • python xml读写

    1 xml例子
  • 命令行mvn打包的时候报错:No compiler is provided in this environment. Perhaps you are running on a JRE

    一 前言 这部分是安装Elasticsearch ik中文分词的时候 用mvn打包报错 No compiler is provided in this environment Perhaps you are running on a JRE
  • Windows的蓝色生死符

    破解Windows的蓝色生死符 为什么Windows 2K XP会蓝屏 NT内核的操作系统采用的是分层结构 层又称为模式 主要有用户层 User Mode 和内核层 Kernel Mode 我们可以通过下面这个形象的比喻来理解Windows
  • 搭建符号服务器 (Windows)

    开网站 安装IIS 添加一个网站 配置好物理路径 添加MIME 扩展名为 类型为 application octet stream 即允许下载所有文件 好了 就那么简单 把pdb发布到网站中 我这里建立了一个名叫 test 的网站 物理路径
  • 第三方依赖库 AG Grid调研分析

    AG Grid依赖 为实现页面表格的展示需求 进行的技术调研 官网地址 https www ag grid com GitHub地址 https github com ag grid ag grid 核心需求 1 大数据量的支持 AG Gr
  • CUnit的用法

    CUnit下载地址 http sourceforge net projects cunit CUnit 在线文档帮助 http cunit sourceforge net doc index html 关于CUnit 本文主要从介绍三方面的
  • 新型的编程语言:eC

    http www cnbeta com articles 61048 htm eC 是一位加拿大人jerome历时十二年开发的一门编译型编程语言 拥有C 项目的性能和Java的跨平台性以及Python的方便性 目前eC拥有自己的IDE 专用
  • 使用python时,ModuleNotFoundError: No module named ‘win32api‘处理方法

    方法一 亲测有效 直接 pip install pywin32 就行了 方法二 转载自https blog csdn net qq 41676500 article details 89282872 1 环境 win10 python3 7
  • Switch NS 通过华硕梅林路由DNSMASQ屏蔽任天堂服务器

    好吧 我是把我的古董NS机给大气层了 今天来说下如何通过dnsmasq把任天堂的服务器给屏蔽了 虽然我还没有测试过这个屏蔽是否能够避免BAN机 作者免责声明 本文以下内容不对其有效性 安全性 可靠性负责 利用本文所提出的技术内容产生的一切正
  • 在线工具, 在线网站, 好东西

    catalog 在线工具 博客 在线工具 粘贴文本 二维坐标系 二维坐标系 latex 图论 博客 添加链接描述
  • Homebrew 更换国内源

    eval opt homebrew bin brew shellenv export HOMEBREW BREW GIT REMOTE https mirrors ustc edu cn brew git export HOMEBREW C
  • 动态规则表达式解析

    import cn hutool core util StrUtil import com alibaba fastjson JSONArray import com alibaba fastjson JSONObject import j
  • 华为笔记本转轴坏了修复指南记录

    华为笔记本转轴坏了修复指南记录 前言 记录一下 华为笔记本MeteBookD MRC W50 转轴破裂导致屏幕翻盖时 转轴出开裂 记录维修全过程 由于之前电脑坏掉的图片找不到了 我这里就先大致描述一下吧 看下图 上面我就是简单的描述了一些我
  • ArcGis10.2详细安装步骤

    目录 1 安装License Manager10 2 2 复制试用文件 3 安装ArcGis Desktop10 2中文版 4 更新本地许可 提供arcgis下载地址 暂时评论区留邮箱吧 下载之后会得到以下3个目录 按顺序进行操作或者安装
  • 什么是集线器

    集线器 英文名又称Hub 在OSI模型中属于数据链路层 价格便宜是它最大的优势 但由于集线器属于共享型设备 导致了在繁重的网络中 效率变得十分低下 所以我们在中 大型的网络中看不到集线器的身影 如今的集线器普遍采用全双工模式 市场上常见的集
  • Type Incompatible operand types String and int

    今天eclipse包了一个错误 意思就是Description Resource Path Location Type Incompatible operand types String an 但是昨天还没有错误为什么那 最后找了好久发现不
  • 5.1劳动节,Happy May Day!(为什么要调休啊?)

    国际劳动节又称 五一国际劳动节 国际示威游行日 英语 International Workers Day May Day 是世界上80多个国家的全国性节日 定在每年的五月一日 它是全世界劳动人民共同拥有的节日 1889年7月 由恩格斯领导的
  • 浅谈 SOLID 原则的具体使用

    单一职责原则 SRP 开放封闭原则 OCP 里氏替换原则 LSP 接口隔离原则 ISP 依赖倒置原则 DIP 小结 SOLID 是面向对象设计5大重要原则的首字母缩写 当我们设计类和模块时 遵守 SOLID 原则可以让软件更加健壮和稳定 那

随机推荐

  • SqlServer数据库中文乱码

    可以在建立数据时指定排序规则 记得选中文简体 Chinese PRC CS AI WS 如果数据库中已经有数据 则转换 编码会失败
  • Android Studio编译异常Error: Program type already present: android.support.design.widget.CoordinatorLayo

    记录一下 希望能帮到小伙伴 解决的方案在build gradle修改 implementation com android support design 25 1 0 修改为 implementation com android suppo
  • Centos6 升级glibc-2.17,解决Requires: libc.so.6(GLIBC_2.17)(64bit)错误解决方法

    在Centos6安装mysql 8 0 33系列提示错误如下 root rhel64 Downloads rpm ivh mysql community common 8 0 33 1 el6 x86 64 rpm gt mysql com
  • frp内网穿透实验

    Frp Fast Reverse Proxy 是比较流行的一款 FRP 是一个免费开源的用于内网穿透的反向代理应用 它支持 TCP UDP 协议 也为 http 和 https 协议提供了额外的支持 你可以粗略理解它是一个中转站 帮你实现
  • 如何用Java对Excel表进行读写操作?

    博主公众号 没有腹肌的程序猿 公众号会不定期更新一些数据集 有需要的可以点点关注哦 如何用Java对Excel表进行读写操作 1 Java读取Excel表的内容 Java读取Excel表相对来说还是比较简单的 分为3步 首先是先读取文件 再
  • 浮动的特点

    一 什么是浮动 1 浮动概念 是一种布局方式 可以让元素脱离文档流 一旦元素脱离文档流 就不再具有元素在文档流中的特点 从而帮助我们布局 2 设置浮动 float样式名 可选值 none 不浮动 默认值 left 向左浮动 right 向右
  • Python 描述符简述

    Python 中 通过使用描述符 可以让程序员在引用一个对象属性时自定义要完成的工作 本质上看 描述符就是一个类 只不过它定义了另一个类中属性的访问方式 换句话说 一个类可以将属性管理全权委托给描述符类 描述符是 Python 中复杂属性访
  • Django TypeError: Abstract models cannot be instantiated.错误解决方案

    问题 2023 09 05 10 23 41 dvadmin utils exception CustomExceptionHandler 64 ERROR Traceback most recent call last File D In
  • Content-Length如何计算

    我还没明白原理不过这代码可以实现 可以用 有时间再看原理 import requests def get content length data length len data keys 2 1 total join list data k
  • 析构函数和虚函数的用法和作用

    析构函数和虚函数的用法和作用 1 析构函数 1 1 特点 2 虚函数 2 1 功能 2 2 使用方法 2 3 纯虚函数 2 3 1 意义 1 析构函数 析构函数是特殊的类函数 没有返回类型 没有参数 不能随意调用 也没有重载 在类对象生命期
  • 什么是IO Pad?

    1 什么是IO pad IO pad是一个芯片管脚处理模块 即可以将芯片管脚的信号经过处理送给芯片内部 又可以将芯片内部输出的信号经过处理送到芯片管脚 输入信号处理包含时钟信号 复位信号等 输出信号包含观察时钟 中断等 IO pad模块可以
  • C++坑总结

    const typedef struct ElemType elem int Tablelen SSTable void change const SSTable ST int i 0 for i 0 i lt ST gt Tablelen
  • MD5加密解密

    md5加密 采用MD5加密解密 MD5加码 生成32位md5码 public static String string2MD5 String inStr MessageDigest md5 null try md5 MessageDiges
  • vue-admin-template

    vue element admin 介绍 vue element admin是一个后台前端解决方案 它基于 vue 和 element ui实现 它使用了最新的前端技术栈 内置了 i18 国际化解决方案 动态路由 权限验证 提炼了典型的业务
  • Android时间戳与字符串相互转换

    import java text ParseException import java text SimpleDateFormat import java util Date public class TestTime public sta
  • unity修改sprite大小的方法

    unity怎么修改sprite的大小呢 方法就是修改pixel per unit的值 值越大 sprite就越小
  • 【机器学习】线性回归【上】朴素最小二乘估计

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 由于字数限制 分成两篇博客 机器学习 线性回归 上 朴素最小二乘估计 机器学习 线性回归 下 正则化最小二乘估计 提醒 下文中的 alpha 和 lambda
  • Maven插件仓库地址

    以下是Maven插件地址
  • C++多线程环境下的单例类对象创建

    使用C 无锁编程实现多线程下的单例模式 贺志国 2023 8 1 在多线程环境下创建一个类的单例对象 要比单线程环境下要复杂很多 下面介绍在多线程环境下实现单例模式的几种方法 一 尺寸较小的类单例对象创建 如果待创建的单例类Singleto
  • cpu三大架构 numa smp mpp

    系统的性能很大程度上依赖于cpu 硬件架构的支持 从系统架构来看 目前的商用服务器大体可以分为三类 即 对称多处理器结构 SMP Symmetric Multi Processor 非一致存储访问结构 NUMA Non Uniform Me