下面是一些NUMA策略控制工具
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策略的有效性是非常有用的。
这部分我也还在继续学习中,有了新的心得一定尽快发布。:-)
本文转自Intel_ISN 51CTO博客,原文链接:http://blog.51cto.com/intelisn/130458,如需转载请自行联系原作者