Linux非统一内存分发

Posted zhangyunfei-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux非统一内存分发相关的知识,希望对你有一定的参考价值。

Linux非统一内存分发


目录

 [显示

传统SMP架构

NUMA,非统一内存访问(Non-uniform Memory Access),介于SMP和MPP之间。在NUMA架构中,每一颗CPU被称为一个node,每个node之间的内存使用的独立的。

每个CPU之间是绝对平等的,没有优先级之分,访问内存都必须通过系统总线。同时CPU之间的访问也是需要经过系统总线的。

从这个架构大家也可以看到SMP架构的短板是什么地方了。 对于现在动辄数十个甚至几百个CPU的系统来讲,这显然是有问题的。系统的总线将是整个系统的瓶颈。

NUMA架构

随着技术的发展,引入了新的一种架构NUMA。 每颗CPU之间是独立的,相互之间的内存是不影响的。每一颗CPU访问属于自己的内存,延迟是最小的。

NUMA配置方法

1) Bios中关闭NUMA设置

2) 在操作系统kernel层面关闭numa,例如:

/etc/grub.conf的kernel行最后添加: numa=off

3)应用程序关闭如Oracle数据库层面关闭:

_enable_NUMA_optimization=false (11g中参数为_enable_NUMA_support)

NUMA常用命令

查看numa统计信息:

numastat

查看cpu归属node

lscpu

numactl --hardware命令则会返回不同节点的内存总大小,可用大小,以及node distance等信息


以上是关于Linux非统一内存分发的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7 关闭操作系统NUMA

如何检测内存泄漏

Windows 下都有哪些内存泄露监测工具

K8S的资源对齐:K8S学习篇3

带有 FMDB 的 iOS SQLite 在仅通过 TestFlight 分发临时构建时不断报告“内存不足”错误

Android:通知动作点击非统一行为