下面是一些NUMA策略控制工具
NUMACTL 是设定进程NUMA策略的命令行工具。对于那些无法修改和重新编译的程序,它可以进行非常有效的策略设定。Numactl使管理员可以通过简单的命令行调用来设定进程的策略, 并可以集成到管理脚本中。
 
Numactl的主要功能包括:
1.  设定进程的内存分配基本策略
2.  限定内存分配范围,如某一特定节点或部分节点集合
3.  对进程进行节点或节点集合的绑定
4.  修改命名共享内存,tmpfshugetblfs等的内存策略
5.  获取当前策略信息及状态
6.  获取NUMA硬件拓扑
  下面是使用numactl设定进程策略的实例:
  numactl --cpubind=0 --membind=0,1 program
  其意义为:在节点0上的CPU运行名为program的程序,并且只在节点01上分配内存。Cpubind的参数是节点编号,而不是cpu编号。在每个节点上有多个CPU的系统上,编号的定义顺序可能会不同。
  下面是使用numactl更改共享内存段的分配策略的实例:
  numactl --length=1G --file=/dev/shm/interleaved --interleave=all
  其意义为: 对命名共享内存interleaved进行设置,其策略为全节点交织分配,大小为1G
  NUMASTAT 是获取NUMA内存访问统计信息的命令行工具。对于系统中的每个节点,内核维护了一些有关NUMA分配状态的统计数据。numastat命令会基于节点对内存的申请,分配,转移,失败等等做出统计,也会报告NUMA策略的执行状况。这些信息对于测试NUMA策略的有效性是非常有用的。
这部分我也还在继续学习中,有了新的心得一定尽快发布。:-)