问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Numa初识

创作时间:
作者:
@小白创作中心

Numa初识

引用
CSDN
1.
https://m.blog.csdn.net/m0_67255065/article/details/145487569

本文将带你初步了解NUMA(Non-Uniform Memory Access)的基本概念、结构组成以及相关命令的使用。

Numa的产生

NUMA技术最早在二十世纪九十年代被开发出来。首次实现商业化的是基于NUMA的Unix系统,具体是Symmetry Multi-Processing(SMP)XPS-100系列服务器。这项技术由VAST公司的Dan Gielen为HISI设计,其巨大成功使得HISI成为欧洲顶级的Unix厂商。

Numa简介

NUMA(Non-Uniform Memory Access)是一种非一致存储访问结构。其基本特征是具有多个CPU模块,每个CPU模块由多个CPU(如4个)组成,并且具有独立的本地内存、I/O槽口等。通过互联模块(如Crossbar Switch)连接和信息交互,每个CPU可以访问整个系统的内存。值得注意的是,访问本地内存的速度将远远高于访问远地内存(系统内其他节点的内存)的速度。

Numa结构

  • Node:包括一个或多个Socket,以及与之相连的本地内存。
  • Socket:主板上的CPU插槽。
  • Core:Socket中独立的硬件单元,包含寄存器和计算单元等。
  • Thread:即超线程(Hyperthreading)的概念,是逻辑执行单元,具有独立的执行上下文,但共享Core内的寄存器和计算单元。

Numa相关命令

lscpu:查看机器的NUMA拓扑结构

上图显示了一台具有2个Sockets的机器,每个Socket包含1个NUMA Node,每个NUMA Node中有8个Cores,每个Core包含2个Threads。因此,总的Threads数量计算如下:

  • 总的Threads数量 = 2(Sockets)× 1(Node)× 8(Cores)× 2(Threads)= 32

numastat:查看NUMA状态

  • numa_hit:打算在该节点上分配内存,最后从此节点分配的次数。
  • num_miss:打算在该节点分配内存,最后从其他节点分配的次数。
  • num_foregin:打算在其他节点分配内存,最后从此节点分配的次数。
  • interleave_hit:采用interleave策略最后从该节点分配的次数。
  • local_node:该节点上的进程在该节点上分配的次数
  • other_node:其他节点进程在该节点上分配的次数

通过这些命令和参数,系统管理员和开发人员可以更好地理解和优化基于NUMA架构的系统性能。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号