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

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

概述我知道可以使用numactrl –interleave将numa模式设置为“interleave”(参见下面的NB)以获取特定进程,但我想知道是否可以将其设置为系统范围的默认值(也就是更改) “制度政策”).例如,如果有内核启动标志来实现这一点? 注意:这里我说的是内核行为,它跨越NUMA节点交错分配的页面 – 而不是BIOS级别的内存控制器行为设置,它跨越高速缓存行 如果使用RHEL / Cen 我知道可以使用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 – 将默认numa策略设置为“交错”系统范围全部内容,希望文章能够帮你解决linux – 将默认numa策略设置为“交错”系统范围所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1035132.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存