在我的/ etc / default / grub文件中,我明确地预留了N个巨大的页面,其中包含“hugepages = N”。如果我在一个有2个NUMA节点的盒子上运行,是否为每个节点留出了N / 2个大页面,或者它们都是去节点0还是......?还有一种方法可以在命令行上查询它们如何在节点之间分割?
答案 0 :(得分:2)
关于hugepages HERE
的kernel.org帖子在NUMA平台上,内核将尝试分发庞大的页面池 在NUMA内存策略指定的所有允许节点集上 修改nr_hugepages的任务。允许节点的默认值 - 当时 任务有默认内存策略 - 是所有带内存的在线节点。允许 对于一个巨大的页面,可用的,连续的内存不足的节点将是 在分配持久性大页面时默默跳过。请参阅讨论 下面是任务内存策略,cpusets和每个节点属性的交互 分配和释放持久的大页面。
巨大页面分配的成功或失败取决于数量 系统中存在的物理上连续的内存 分配尝试。如果内核无法分配大页面 在NUMA系统中的一些节点,它将尝试弥补差异 在具有足够可用连续性的其他节点上分配额外页面 记忆,如果有的话。
系统管理员可能希望将此命令放在本地rc之一中 init文件。这将使内核能够在早期分配大页面 获取物理连续页面的可能性时的启动过程 仍然很高。管理员可以验证大页面的数量 通过检查sysctl或meminfo实际分配。检查每个节点 在NUMA系统中分发大页面,使用:
cat /sys/devices/system/node/node*/meminfo | fgrep Huge