Numa初识
本文分享自天翼云开发者社区《Numa初识》,作者:j****n
Numa产生
在二十世纪九十年代被开发出来的。
首次商业化实现基于NUMA的Unix系统的是对称多处理XPS-100系列服务器。
由VAST公司的Dan Gielen为HISI设计的。
这个架构的巨大成功使HISI成为了欧洲的顶级Unix厂商。
Numa简介
NUMA(Non-Uniform Memory Access):非一致存储访问结构。
基本特征是具有多个 CPU 模块,每个 CPU 模块由多个 CPU( 如 4 个 ) 组成,并且具有独立的本地内存、 I/O 槽口等。由于其节点node之间可以通过互联模块 ( 如称为 Crossbar Switch) 进行连接和信息交互,因此每个 CPU 可以访问整个系统的内存 。
访问本地内存的速度将远远高于访问远地内存 ( 系统内其它节点的内存 ) 的速度。
Numa结构

node包括一个或者多个Socket,以及与之相连的local memory;
socket就是主板上的CPU插槽;
core就是socket里独立的一组程序执行的硬件单元,比如寄存器,计算单元等;
thread:就是超线程hyperthread的概念,逻辑的执行单元,独立的执行上下文,但是共享core内的寄存器和计算单元
Numa相关命令
lscpu:查看机器的NUMA拓扑结构

上图中机器有2个sockets,每个sockets包含1个numa node,每个numa node中有8个cores,每个cores包含2个thread,所以总的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初识的更多相关文章
- [中英对照]User-Space Device Drivers in Linux: A First Look | 初识Linux用户态设备驱动程序
如对Linux用户态驱动程序开发有兴趣,请阅读本文,否则请飘过. User-Space Device Drivers in Linux: A First Look | 初识Linux用户态设备驱动程序 ...
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- 初识Hadoop
第一部分: 初识Hadoop 一. 谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识IOS,Label控件的应用。
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
- UI篇(初识君面)
我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- 初识SpringMvc
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
- Redis初识、设计思想与一些学习资源推荐
一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...
随机推荐
- VAE变分自编码器Keras实现
变分自编码器(variational autoencoder, VAE)是一种生成模型,训练模型分为编码器和解码器两部分. 编码器将输入样本映射为某个低维分布,这个低维分布通常是不同维度之间相互独立的 ...
- 微信小游戏sdk接入支付和登录,解决了wx原生不支持ios支付的痛点
前情提要 微信小游戏是小程序的一种. 项目接入微信小游戏sdk的支付和登录.主要难点在于接入ios的支付.因为官方只支持android, 不支持ios. 即ios用户不能直接在小游戏中发起支付,参考市 ...
- vue-element-admin 左侧的导航栏固定展开
项目需要把左侧的导航栏固定打开,不关闭我们只需要打开store-modules-app.js文件中,把下面的代码给修改就可以了
- Git之实战命令
相关概念: HEAD: 说简单一点,HEAD就是当前活跃分支的游标. 形象的记忆就是:你现在在哪儿,HEAD就指向哪儿,所以Git才知道你在那儿! 不过HEAD并非只能指向分支的最顶端(时间节点距今最 ...
- highcharts中的仪表盘样式
仪表盘的样式如下: 是双表盘展示 左边的图中minorTickInterval的值为null,右边的minorTickInterval的值为"auto" 左边的图中lineColo ...
- 子组件监听props中的值,监听不到旧值的相关问题
昨天,在项目中做一个功能,一个tab切换,点击其中一个tab的时候,调用组件中的查询方法,切只调用一次.再次切换的时候不再调用. 我的做法是: 在父组件中创建一个变量,初始化data中设为0,在点击t ...
- 进程管理工具之PM2
Github地址 https://github.com/Unitech/pm2 官方文档 http://pm2.keymetrics.io/docs/usage/quick-start/ npm安装 ...
- 开源 - Ideal库 - Excel帮助类,TableHelper实现(三)
书接上回,我们今天继续讲解实现对象集合与DataTable的相互转换. 01.把表格转换为对象集合 该方法是将表格的列名称作为类的属性名,将表格的行数据转为类的对象.从而实现表格转换为对象集合.同时我 ...
- Vue项目报TypeError: Cannot read properties of undefined (reading '_wrapper')
前情 最近在做一个营销活动的时候,我选择了Vue技术栈来开发. 坑位 项目看似一切都正常,但当我在绑定的js事件中去修改当前组件的data上的值时会报错:TypeError: Cannot read ...
- 关于 Span 的一切:探索新的 .NET 明星: 3.什么是 Memory<T>,以及为什么你需要它?
3. 什么是 Memory<T>,以及为什么你需要它? 1. Span<T> 是什么? 2. Span<T> 是如何实现的? 3. 什么是 Memory<T& ...