NUMA简介

NUMA

1 什么是NUMA

早期的计算机,内存控制器还没有整合进 CPU,所有的内存访问都需要经过北桥芯片来完成。如下图所示,CPU 通过前端总线(FSB,Front Side Bus)连接到北桥芯片,然后北桥芯片连接到内存——内存控制器集成在北桥芯片里面。在这里插入图片描述
这种架构被称为 UMA1(Uniform Memory Access, 一致性内存访问 ):总线模型保证了 CPU 的所有内存访问都是一致的,不必考虑不同内存地址之间的差异。
在 UMA 架构下,CPU 和内存之间的通信全部都要通过前端总线。而提高性能的方式,就是不断地提高 CPU、前端总线和内存的工作频率。
但是! 由于物理条件的限制,无法继续通过提高工作频率提高系统性能
CPU 性能的提升开始从提高主频转向增加 CPU 数量(多核、多 CPU)。越来越多的 CPU 对前端总线的争用,使前端总线成为了瓶颈。为了消除 UMA 架构的瓶颈,NUMA2(Non-Uniform Memory Access, 非一致性内存访问)架构诞生
在这里插入图片描述
(1)CPU 厂商把内存控制器集成到 CPU 内部,一般一个 CPU socket 会有一个独立的内存控制器。
(2)每个 CPU scoket 独立连接到一部分内存,这部分 CPU 直连的内存称为“本地内存”。
(3)CPU 之间通过 QPI(Quick Path Interconnect) 总线进行连接。CPU 可以通过 QPI 总线访问不和自己直连的“远程内存”。
和 UMA 架构不同,在 NUMA 架构下,内存的访问出现了本地和远程的区别:访问远程内存的延时会明显高于访问本地内存。

2 NUMA设置

Linux 有一个命令 numactl3 可以查看或设置 NUMA 信息。

  • 执行 numactl --hardware 可以查看硬件对 NUMA 的支持信息:
# numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
node 0 size: 96920 MB
node 0 free: 2951 MB
node 1 cpus: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
node 1 size: 98304 MB
node 1 free: 33 MB
node distances:
node   0   1 0:  10  21 1:  21  10

(1)CPU被分为Node0和Node1
(2)一组CPU分配到96GB的内存
(3)node distances 是一个二维矩阵,node[i][j] 表示 node i 访问 node j 的内存的相对距离。比如 node 0 访问 node 0 的内存的距离是 10,而 node 0 访问 node 1 的内存的距离是 21。

Linux 的 NUMA 策略

Linux 识别到 NUMA 架构后,默认的内存分配方案是:优先从本地分配内存。如果本地内存不足,优先淘汰本地内存中无用的内存。使内存页尽可能地和调用线程处在同一个 node。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java集合详解(单列集合 | 双列集合 | Collections集合工具类)

○ 前言: 在开发实践中,我们需要一些能够动态增长长度的容器来保存我们的数据,java中为了解决数据存储单一的情况,java中就提供了不同结构的集合类,可以让我们根据不同的场景进行数据存储的选择,如Java中提…

xpath基础入门

一、XPath是什么 XPath 定位 HTML 文档中的元素的工具 XPath 是一种表达语言,旨在支持XML文档的查询或转换。 XPath由万维网联盟(W3C) 于 1999 年定义。 XPath支持 XML 的应用程序(例如 Web 浏览器)和许多编程语言都支持 XPath。 XPath 语言…

Tensorflow2.0笔记 - 均方差MSE和交叉熵CROSS ENTROPHY作为损失函数

本笔记主要记录使用MSE和交叉熵作为loss function时的梯度计算方法。 import tensorflow as tf import numpy as nptf.__version__#softmax函数使用 #参考资料:https://blog.csdn.net/u013230189/article/details/82835717 #简单例子: #假设输出的LOGIT…

24计算机考研调剂 | 佳木斯大学

佳木斯大学计算机科学与技术、电子信息招调剂生 考研调剂招生信息 学校:佳木斯大学 专业:工学->电子信息 年级:2024 招生人数:- 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 黑龙江省自主智能与信息处理重点实验室马慧彬…

maven 安装

maven 安装 maven 下载解压添加自定义仓库位置修改配置文件环境变量配置测试idea 设置 maven 下载 下载 Apache Maven 解压 添加自定义仓库位置 repository 修改配置文件 修改 maven\conf\settings.xml 文件, 主要是 localRepository (更改自己路径) 和 mirro…

基于SpringBoot+Vue+ElementUI+Mybatis前后端分离管理系统超详细教程(五)——多条件搜索并分页展示

前后端数据交互 书接上文,我们上节课通过前后端数据交互实现了分页查询和单条件搜索分页查询的功能,最后留了个小尾巴,就是把其他两个搜索条件(email,address)也加进来,实现多条件搜索并分页展示。这节课我…

计算机网络-第5章 运输层(1)

主要内容:进程之间的通信与端口、UDP协议、TCP协议、可靠传输原理(停止等待协议、ARQ协议)、TCP报文首部、TCP三大题:滑动窗口、流量控制、拥塞控制机制 5.1 运输层协议概述 运输层向它上面的应用层提供通信服务,真正…

深入理解React中的useState:函数组件状态管理的利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

24计算机考研调剂 | 燕山大学【211】

燕山大学接收调剂研究生 考研调剂招生信息 学校:燕山大学 专业:工学->电子科学与技术->物理电子学 年级:2024 招生人数:5 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 要求考生一志愿报考211及以上全国重点院校&…

嵌入式学习第二十六天!(网络传输:TCP编程、HTTP协议)

TCP通信: 1. TCP发端: socket -> connect -> send -> recv -> close 2. TCP收端: socket -> bind -> listen -> accept -> recv -> send -> close 3. TCP需要用到的函数: 1. co…

蓝桥杯2023真题(4)

1.景区导游(树上前缀和、最近公共祖先) 思路 路线:2 -> 6 -> 5 -> 1 1.一个点都不去去掉的花费记作sum 2.去掉第一个点,sum - cost[2 -> 6] 3.去掉第二个点,sum - cost[2 -> 6] - cost[6 -> 5] co…

计算机网络笔记(湖科大教书匠版本)

第一章、 ①三种交换方式 电路交换、分组交换、报文交换(被分组交换所取代) 1.电路交换:会一直占用通道,不适合计算机之间的数据通信 2.分组交换:通常我们把表示该数据的整块数据称为一个报文。 先把较长的报文划…

下载、安装并配置 Node.js

文章目录 1. 下载2. 自定义安装3. 添加环境变量4. 验证5. 修改下载位置6. npm 换源7. 测试 ➡️➡️➡️来源:Simplilearn.com Node.js 是一个开源、跨平台的 JavaScript 运行时环境和库,用于在客户端浏览器之外运行 web 应用程序。 Ryan Dahl 在2009年开…

React useMemo钩子指南:优化计算性能

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

萝卜大杂烩 | Polars ,最强Pandas平替(内含实操代码,建议收藏!)

本文来源公众号“萝卜大杂烩”,仅用于学术分享,侵权删,干货满满。 原文链接:Polars (最强Pandas平替) 本文章转自:数据studio 1 介绍 Polars是一个用于操作结构化数据的高性能DataFrame库,可以说是平替…

leetcode 热题 100_旋转图像

题解一&#xff1a; 翻转数组&#xff1a;先将数组沿右上-左下对角线翻转&#xff0c;再将数组上下翻转。 class Solution {public void rotate(int[][] matrix) {int n matrix.length;for (int i 0; i < n; i) {//沿右上-左下对角线翻转for (int j 0; j < n - i - 1…

简单句,并列句【语法笔记】

1. 简单句&#xff0c;并列句本质分别是什么 2. 如何区分简单句和并列句 3. 连接词 4. 简单句的五大基本句型 5. 有连接词&#xff0c;未必都是并列句&#xff0c;这是为什么

为何系统对接采用定制开发周期通常比集成平台更长

在信息化建设的浪潮中&#xff0c;系统对接是实现企业内外部系统间数据共享和业务协同的关键环节。在对接开发过程中&#xff0c;定制开发与平台开发是两种主要的实现方式&#xff0c;而普遍观点认为&#xff0c;定制开发对接的周期通常要比平台开发更长。本文将深入探讨这一现…

物奇平台超距断连无蓝牙广播问题解决方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 物奇平台超距断连无蓝牙广播问题解决方法 一 问题反馈 二解决方法: 1 运行流程分析 对应代…

智能合约开发基础知识:最小信任机制、智能合约、EVM

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 专栏的前面几篇详细了介绍了区块链的核心基础知识 有兴趣学习的小伙伴可以看看http://t.csdnimg.cn/fCD5E关于区块…