专栏首页大话IT架构服务器05-CPU和内存架构介绍

服务器05-CPU和内存架构介绍

从系统架构来看,服务器的CPU和内存架构可以分三类:

SMP :Symmetric Multi-Processor

NUMA :Non-Uniform Memory Access

MPP :Massive Parallel Processing

我本人不认为MPP是CPU和内存架构的一种;我认为他是SMP或者NUMA的分布式架构应用而已;本文后续说明。

1.早期的服务器:SMP

最早的服务器都是一颗CPU,随着业务压力的增大,面临CPU不够的境况。怎么办?简单粗暴的办法就是:架构不动,在现有架构上加CPU即可。

架构不变,CPU是加了,但是效果没有想象的那么好。CPU是原来的两倍,但是系统性能并没有提升为原来的两倍。什么原因?两颗CPU的地位是平等的,共享内存总线;导致CPU0使用内存的时候,CPU1就得等待。两颗CPU的情况还马马虎虎能过得去,随着CPU数量的增大,CPU总线越来越成为瓶颈。怎么办?此时NUMA闪亮登场了。

2.现在的服务器:NUMA

NUMA解决了SMP架构内存总线的瓶颈,确保每个CPU都有自己的私有内存和内存总线;如果本CPU的内存不够怎么办?通过CPU总线(QPI或UPI)和其他CPU协商去借。任何事情都不可能十全十美,NUMA也有自己的问题,尤其是在数据库和虚拟化场景下的某些情况会有性能问题:1.跨CPU访问内存(即和别的CPU借内存)比访问本CPU的内存效率要低 2.会出现内存和CPU访问失衡问题:如4颗CPU,CPU1要访问的数据恰好在CPU0的内存里。

小提示:数据库场景下,有经验的DBA都会要求关闭NUMA。

3)MPP

SMP|NUMA架构下,所有的CPU都在一个server里,操作系统也是一个

MPP其实就是SMP|NUMA的多个server通过网络连接在一起,每个server都有自己的操作系统;MPP更多的是依赖多个server之间操作系统或者分布式软件来协调调度组成逻辑的计算机或者服务;本质上应该属于现代分布式架构。程序=算法+数据结构,其中算法可以算作是cpu处理,而数据结构可以看作是数据存储的话,那么很显然扩展的方向有两个,扩CPU和扩存储;此时又演化为scale-out和scale-up。scale-up的局限性很明显,无论多牛逼总有到头的一天;scale-out则计算和存储是永远可以线性扩展。这也是目前分布式大行其道的原因。

本文分享自微信公众号 - 大话IT架构(IT_ren_er),作者:王志国

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • IT全栈-服务器02-X86-PCServer CPU介绍

    大话IT架构
  • IT全栈-服务器03-X86-PCServer内存及NUMA介绍

    最早的服务器是1颗CPU;随着应用压力的增大,单颗CPU性能存在瓶颈;简单粗暴的办法---架构不变,再增加1颗CPU,即SMP。

    大话IT架构
  • 服务器04-CPU及内存选型

    intel官方CPU知识库:https://ark.intel.com/content/www/us/en/ark/products/series/192283...

    大话IT架构
  • 深度学习工作站攒机指南

    接触深度学习已经快两年了,之前一直使用Google Colab和Kaggle Kernel提供的免费GPU(Tesla K80)训练模型(最近Google将Co...

    郭耀华
  • 用 CPU 烤出来的肉,会特别香吗?

    众所周知,有一句话流传已久「显卡烧水,CPU 烤肉」。而最近有位网友(ytb:たれみみ親衛隊長)就认真实践了这一句,用 CPU 烤出来的肉是不是会特别好吃呢?

    HyperAI超神经
  • 了解一下CPU 第一篇(r4笔记第30天)

    CPU可能对于我们来说是熟悉又陌生的,每天的工作基本都离不开CPU,CPU的消耗是系统负载的一个重要指标,每天都会不定时的来看看CPU的使用情况,但是对于它了解...

    jeanron100
  • 物理 CPU vs 逻辑 CPU vs 核心 vs 线程 vs Socket

    当我们试着通过 Linux 命令 nproc 和 lscpu 了解一台计算机 CPU 级的架构和性能时,我们总会发现无法正确地理解相应的结果,因为我们会被好几个...

    IT大咖说
  • Linux查询CPU信息

    Tyan
  • PowerVM虚拟化环境下 CPU 利用率的监控与探究

    本文主要介绍在 PowerVM 虚拟化环境下,微分区 CPU 利用率的监控方法,并且深入讨论在虚拟化环境下,CPU 的调度原理。 普通 LPAR CPU 利用率...

    魏新宇
  • 计算机基础 | 多核、缓存...现代CPU是如何工作的

    之前的文章《源代码如何被计算机执行》已经提到,对于一段源代码,计算机主要依靠编译器将源代码转化为CPU可以执行的程序。那么,CPU到底是如何工作的呢?本文将介绍...

    PP鲁

扫码关注云+社区

领取腾讯云代金券