注意:这里我说的是内核行为,它跨越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策略设置为“交错”系统范围所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)