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非统一内存分发的主要内容,如果未能解决你的问题,请参考以下文章