MPP 与 SMP 的区别,终于有人讲明白了

大数据 数据分析
MPP 需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程,通信复杂。当通信时间长时, MPP 性能会变差。目前一些基于 MPP 技术的服务器一般 通过系统级软件(如数据库)来屏蔽这种复杂性。

01SMP

SMP 是指在一个计算机上汇集了一组处理器(多核 CPU),各 CPU 之间共享内存子系统以及总线结构。代表数据库有 Oracle 、MySQL 。SMP 架构原理图如图1所示。

图片

▲图1 SMP 架构原理图

SMP 的典型特征如下:

  • 每个处理器共享操作系统的一个副本 。
  • 支持共享架构。
  • 多任务并行架构,是一个紧耦合的多处理器系统。
  • 多个处理器之间共享整个工作。
  • 没有单独的缓存池或锁表,全部共享。
  • 通过购买更大的系统来实现扩展。
  • 容易出现资源争用等问题。
  • 创建分布式架构需要复杂的设计,并且只能部分实现。
  • 软件提供的内存可用量完全取决于 RAM 和负载的数量。

在 SMP 中,每个 CPU 都有自己的缓存,无论双核还是四核,其余资源都是共享的。SMP 的优点如下。

1 )共享单一操作系统副本。

2 )应用程序编程模式简便。

3)管理成本低,易于维护管理。

SMP 的缺点如下。

1 )伸缩扩展能力非常有限。对 SMP 服务器进行扩展的方式包括增加内存、使用更快 的 CPU、增加 CPU、扩充 I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存 储设备)。这样的架构模式直接导致内存上线受限制。

2 )CPU 利用率低。由于每个 CPU 必须通过相同的内存总线访问相同的内存资源,因 此随着 CPU 数量的增加,内存访问冲突将迅速增加,最终造成 CPU 资源的浪费,大大降 低 CPU 性能的有效性。

3)总线有瓶颈。当大型程序的处理要求大于共享总线时,总线就没有能力进行处理 了,这时共享的总线就成为性能瓶颈。

4 )容错性和效率较低。

SMP 的典型应用场景是托管小型网站和电子邮件服务器等。

02分布式MPP计算架构

MPP(Massively Parallel Processing,大规模并行分析处理)架构模式,是典型的分布 式计算模式。MPP 的各节点不共享资源,每个执行节点可以独自完成数据的读取和计算。

MPP 架构核心原理如下。

1 )将数据集分布在许多机器或节点上,以处理大量数据。

2 )每个节点都有独立的磁盘存储系统和内存系统。

3 )业务数据根据数据库模型和应用特点划分到各个节点上。

4 )每个数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体 提供数据库服务。

在 MPP 架构中,各节点都包含自己的存储和计算功能,可以独立执行查询的一部分。 最后,在内存里进行数据合并,并将结果返回客户端。MPP 具有可伸缩、高可用、高性能、 资源共享等优势。

MPP 由许多松耦合的处理单元组成。注意,这里是指处理单 元而不是处理器。每个单元内的 CPU 都有自己私有的资源,如总线、内存、硬盘等。每个 单元内都有操作系统和管理数据库实例。这种结构最大的特点在于不共享资源。代表数据库  有 ClickHouse 、Snowflake 、Azure Synapse Analytics 、Impala 、Greenplum 、Elasticsearch、 Presto 。MPP 架构原理图如图2所示。

图片图片

▲图2 MPP架构原理图

MPP 典型特征如下:

  • 每个处理器都使用自己的操作系统和内存。
  •  支持无共享架构。
  •  多个处理器对单个任务进行协调处理。每个处理器处理任务的不同部分。
  • 每个节点只负责处理自己磁盘上的任务。
  • 每个节点维护自己的一组锁表和缓存池,增加了内存功能的可用性。
  • 只需添加机架即可轻松实现可扩展性,支持 TB 到 PB 数据量级的水平扩展。
  • 完全不共享资源,所以不存在资源争用。
  • 被设计为分布式架构。
  • 数据被水平分区,压缩率高,以最佳方式使用内存。
  • 处理器使用消息进行通信。

MPP 的优点如下。

1 )每个处理器都使用自己的操作系统和内存。

2 )性能好。大规模数据并行处理能力优秀,适合于复杂的大型数据分析与处理场景。 

3)可伸缩。在 MPP 增加节点时,MPP 的性能可以线性扩展。MPP 在数据仓库决策支持和数据挖掘方面占据优势。

4 )低成本。基于 MPP 的数据仓库解决方案旨在廉价的商用硬件上运行,不需要可能 包含成本的企业级双冗余组件。

5 )高可用。使用自动数据复制来提高系统弹性并确保高可用性。

6)高吞吐量。MPP 可以实现非常高的吞吐量,因为读写操作可以在集群中的独立节点 上并行执行。

MPP 的缺点如下。

1 )管理成本高。MPP 需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过 程,通信复杂。当通信时间长时, MPP 性能会变差。目前一些基于 MPP 技术的服务器一般 通过系统级软件(如数据库)来屏蔽这种复杂性。

2 )短板效应:如果遇到“短板”节点,整个引擎的性能将下降到该短板节点的能力(木桶的短板)。MPP 架构不适合异构的机器,它要求各节点配置相同。

MPP 的典型应用场景是数据仓库、大规模数据处理和数据挖掘等。

关于作者:陈光剑,资深大数据专家、后端技术专家和架构师,拥有超过10年的技术研发和管理经验,一线实战经验丰富。现就职于字节跳动,曾就职于阿里巴巴,主要从事企业智能数字化经营管理、电商智能数字化运营等系统架构设计和研发工作。

责任编辑:武晓燕 来源: 数仓宝贝库
相关推荐

2022-12-28 18:31:43

Hive性能分布式表

2022-06-21 11:14:51

大数据系统架构

2021-06-13 12:03:46

SaaS软件即服务

2021-10-09 00:02:04

DevOps敏捷开发

2022-03-27 20:32:28

Knative容器事件模型

2021-06-29 11:21:41

数据安全网络安全黑客

2021-02-14 00:21:37

区块链数字货币金融

2020-11-30 08:34:44

大数据数据分析技术

2022-04-22 11:26:55

数据管理架构

2022-01-05 18:27:44

数据挖掘工具

2022-07-31 20:29:28

日志系统

2021-03-03 21:31:24

量化投资利润

2022-04-12 18:29:41

元数据系统架构

2021-09-02 12:30:22

自动驾驶人工智能技术

2021-10-27 10:57:17

TelnetSNMP网络

2020-10-29 06:09:37

数据中台数据大数据

2022-04-18 07:37:30

数据信息知识

2021-04-12 07:36:15

Scrapy爬虫框架

2020-12-01 09:22:43

进程协程开发

2022-02-15 09:04:44

机器学习人工智能监督学习
点赞
收藏

51CTO技术栈公众号