linux – 将默认numa策略设置为“交错”系统范围

前端之家收集整理的这篇文章主要介绍了linux – 将默认numa策略设置为“交错”系统范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道可以使用numactrl –interleave将numa模式设置为“interleave”(参见下面的NB)以获取特定进程,但我想知道是否可以将其设置为系统范围的默认值(也就是更改) “制度政策”).例如,如果有内核启动标志来实现这一点?

注意:这里我说的是内核行为,它跨越NUMA节点交错分配的页面 – 而不是BIOS级别的内存控制器行为设置,它跨越高速缓存行

解决方法

如果使用RHEL / CentOS / Fedora,我建议使用 numad守护进程. ( Red Hat paywall link).

虽然我没有太多使用numactl –interleave指令,但似乎你已经确定你的工作量需要它.你能解释为什么会这样,以提供更好的背景吗?

编辑:

似乎大多数推荐显式numactl定义的应用程序要么生成libnuma library call,要么在wrapper script中包含numactl.

对于numad方面,有一个配置选项可以在命令行或/etc/numad.conf中指定…

-K <0|1>
   This option controls whether numad keeps interleaved  memory  spread  across  NUMA  nodes,or
   attempts to merge interleaved memory to local NUMA nodes.  The default is to merge interleaved
   memory.  This is the appropriate setting to localize processes in a  subset  of  the  system’s
   NUMA  nodes.   If  you  are running a large,single-instance application that allocates inter-
   leaved memory because the workload will have continuous unpredictable memory  access  patterns
   (e.g. a large in-memory database),you might get better results by specifying -K 1 to instruct
   numad to keep interleaved memory distributed.

有人说,尝试使用numad -K 1 -u X之类的东西,其中X是100 x核心数,可能对此有所帮助.试试吧.

另见HP’s ProLiant Whitepaper on Linux and NUMA.

猜你在找的Linux相关文章