NUMACTL 是设定进程NUMA策略的命令行工具。对于那些无法修改和重新编译的程序,它可以进行非常有效的策略设定。Numactl使管理员可以通过简单的命令行调用来设定进程的策略, 并可以集成到管理脚本中。
Numactl的主要功能包括:
1. 设定进程的内存分配基本策略
2. 限定内存分配范围,如某一特定节点或部分节点集合
3. 对进程进行节点或节点集合的绑定
4. 修改命名共享内存,tmpfs或hugetblfs等的内存策略
5. 获取当前策略信息及状态
6. 获取NUMA硬件拓扑
下面是使用numactl设定进程策略的实例:
numactl --cpubind=0 --membind=0,1 program
其意义为:在节点0上的CPU运行名为program的程序,并且只在节点0,1上分配内存。Cpubind的参数是节点编号,而不是cpu编号。在每个节点上有多个CPU的系统上,编号的定义顺序可能会不同。
下面是使用numactl更改共享内存段的分配策略的实例:
numactl --length=1G --file=/dev/shm/interleaved --interleave=all
其意义为: 对命名共享内存interleaved进行设置,其策略为全节点交织分配,大小为1G。
NUMASTAT 是获取NUMA内存访问统计信息的命令行工具。对于系统中的每个节点,内核维护了一些有关NUMA分配状态的统计数据。numastat命令会基于节点对内存的申请,分配,转移,失败等等做出统计,也会报告NUMA策略的执行状况。这些信息对于测试NUMA策略的有效性是非常有用的。
这部分我也还在继续学习中,有了新的心得一定尽快发布。:-)
摘自: 英特尔软件网络博客
13 个解决方案
#1
这也推荐?
#2
这么神奇
#3
Up
#4
UP
#5
赶紧总结心得啊。
#6
PS:
我的目标是 ---->
^_^
#7
UP
#8
UP
#9
跟着学习,多谢
#10
re
#11
#12
看完,谢谢楼主的介绍!支持下!
#13
好贴留名
#1
这也推荐?
#2
这么神奇
#3
Up
#4
UP
#5
赶紧总结心得啊。
#6
PS:
我的目标是 ---->
^_^
#7
UP
#8
UP
#9
跟着学习,多谢
#10
re
#11
#12
看完,谢谢楼主的介绍!支持下!
#13
好贴留名