大页面数量不断增加,耗尽内存

大页面数量不断增加,耗尽内存

在机器上有 38 GB 的内存。在我将大页面 (2048k) 的数量设置为 17290 后,我发现几乎所有的内存都已使用。但我没有运行任何进程。怎么会这样?我应该设置多少大页面?

答案1

您已将几乎所有内存都保留给巨大的 tlb 页。这样几乎没有内存可以存储实际数据。建议的大小约为您设置的 1/1,000。

答案2

这个问题很老了,但我认为另一个答案是错误的。取决于大页面的分配方式,如果当时正确使用

echo 17290 > /proc/sys/vm/nr_hugepages

或类似的东西,所看到的是预期的行为,并且如文档所述。保留人们认为工作负载所需的大页面数量是绝对可以的,并且所描述的场景中几乎所有可用内存都用完了也是意料之中的:

用作大页面的页面在内核中保留,不能用于其他用途。在内存压力下,大页面不能被换出。

https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt

其他人也做同样的事情:

将 vm.nr_hugepages 内核参数设置为合适的值。在本例中,我们决定使用 12GB,并将参数设置为 6144(6144*2M=12GB)。您可以运行:echo 6144 > /proc/sys/vm/nr_hugepages

https://blog.pythian.com/performance-tuning-hugepages-in-linux/

相关内容