操作系统-numa架构

目录

1、NUMA概念

2、NUMA Node 内部

2.1 物理 CPU

2.2 Socket

2.3 Node

2.4 Core

3、容器在node中的位置


参考文献:NUMA架构详解-CSDN博客

1、NUMA概念

NUMA(Non-Uniform Memory Access)非均匀内存访问架构是指多处理器系统中,内存的访问时间是依赖于处理器和内存之间的相对位置的。 这种设计里存在和处理器相对近的内存,通常被称作本地内存;还有和处理器相对远的内存, 通常被称为非本地内存。

UMA(Uniform Memory Access)均匀内存访问架构则是与NUMA相反,所以处理器对共享内存的访问距离和时间是相同的。

下图是一个典型的早期 x86 UMA 系统,四路处理器通过 FSB (前端系统总线, Front Side Bus) 和主板上的内存控制器芯片 (MCH, Memory Controller Hub) 相连,DRAM 是以 UMA 方式组织的,延迟并无访问差异。

​​

下图就是一个典型的 x86 的 NUMA 架构:

​​

2、NUMA Node 内部

一个NUMA Node内部是由一个物理CPU和它所有的本地内存(Local Memory) 组成的。广义得讲, 一个NUMA Node内部还包含本地IO资源,对大多数Intel x86 NUMA平台来说,主要是PCIe总线资源。 ACPI规范就是这么抽象一个NUMA Node的。

2.1 物理 CPU

一个CPU Socket里可以由多个CPU Core和一个Uncore部分组成。每个CPU Core内部又可以由两个CPU Thread组成。 每个CPU thread都是一个操作系统可见的逻辑CPU。对大多数操作系统来说,一个八核HT打开的CPU会被识别为16个CPU。 下面就说一说这里面相关的概念

2.2 Socket

一个Socket对应一个物理CPU。 这个词大概是从CPU在主板上的物理连接方式上来的,可以理解为 Socket 就是主板上的 CPU 插槽。处理器通过主板的Socket来插到主板上。 尤其是有了多核(Multi-core)系统以后,Multi-socket系统被用来指明系统到底存在多少个物理CPU。

2.3 Node

NUMA体系结构中多了Node的概念,这个概念其实是用来解决core的分组的问题。每个node有自己的内部CPU,总线和内存,同时还可以访问其他node内的内存,NUMA的最大的优势就是可以方便的增加CPU的数量。通常一个 Socket 有一个Node,也有可能一个Socket有多个 Node。

2.4 Core

CPU的运算核心。 x86的核包含了CPU运算的基本部件,如逻辑运算单元(ALU), 浮点运算单元(FPU), L1和L2缓存。 一个Socket里可以有多个Core。如今的多核时代,即使是Single Socket的系统, 也是逻辑上的SMP系统。但是,一个物理CPU的系统不存在非本地内存,因此相当于UMA系统。

3、容器在node中的位置

对于node来说,存在本地内存和远程内存,如下图:node0的本地内存对于node1来说,属于远程内存。node0上的CPU访问远程内存要比访问本地内存延时增加很多。因此,为了提升核心业务和敏感业务的访问性能,容器进行了NUMA node绑核优化。

每个容器占用node的的几个核。一个容器一般通常对应一个进程,尽管一个容器可以运行多个进程,但这种情况并不常见。

容器与进程的关系

  • 单进程模型:Docker 容器通常采用单进程模型,即每个容器内通常只运行一个主要进程。例如,一个 Web 应用可能在某个容器内运行一个 Web 服务器进程。

  • 多进程模型:虽然可以在同一个容器内运行多个进程,但这并不是最佳实践。Docker 的设计理念是将每个容器视为一个独立的服务,并且最好让每个容器只运行一个主要进程。这使得容器的管理、日志记录和监控变得更加简单。

针对于不敏感的服务,或者是利用率很低的服务,可以将多个服务部署到一个容器中。

​​
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值