在我的 /etc/default/grub 文件中,我明确地使用“hugepages=N”留出了 N 个大页面。如果我在一个有 2 个 NUMA 节点的盒子上运行,是否会为每个节点留出 N/2 个大页面,或者它们都转到节点 0,还是......?还有一种方法可以在命令行上查询它们是如何跨节点拆分的吗?
1242 次
1 回答
2
来自 kernel.org 关于大页面的帖子这里
在 NUMA 平台上,内核将尝试在修改 nr_hugepages 的任务的 NUMA 内存策略指定的所有允许节点集上分配大页面池。允许节点的默认值——当任务具有默认内存策略时——是所有具有内存的在线节点。分配持久大页面时,将无提示地跳过大页面可用的连续内存不足的允许节点。请参阅下面关于任务内存策略、cpuset 和每个节点属性与持久大页面的分配和释放的交互的讨论。
大页面分配的成功或失败取决于分配尝试时系统中存在的物理连续内存量。如果内核无法从 NUMA 系统中的某些节点分配大页面,它将尝试通过在具有足够可用连续内存(如果有的话)的其他节点上分配额外页面来弥补差异。
系统管理员可能希望将此命令放在本地 rc init 文件之一中。当获得物理连续页面的可能性仍然很高时,这将使内核能够在引导过程的早期分配大页面。管理员可以通过检查 sysctl 或 meminfo 来验证实际分配的大页数。要检查 NUMA 系统中大页面的每个节点分布,请使用:
cat /sys/devices/system/node/node*/meminfo | fgrep Huge
于 2017-05-17T15:42:38.490 回答