更改我的内存页面的大小?

更改我的内存页面的大小?

我想将内核的页面大小从 4KB 更改为 4MB,因为我的计算机已经添加了大量 RAM,而且我永远不会再用完 RAM。

这个想法是,需要大量内存的程序将花费更少的时间来分配页面。我想这会提高性能,我想尝试一下。

跑步时我找不到任何地方make menuconfig。有没有办法做到这一点?

答案1

PAGESIZE 在内核编译时设置。该选择仅对 i386 硬件有效。如果您运行 64 位系统或任何其他体系结构,则页面大小为 4K 并且无法更改。

答案2

您可能想看看Transparent Hugepages。 .config 项是 CONFIG_TRANSPARENT_HUGEPAGE。请注意,启用此功能不会自动为您提供大页面。您需要将 CONFIG_TRANSPARENT_HUGEPAGE_MADVISE 设置为“n”,以使其成为默认值。

另请注意,这不允许您选择任意页面大小。我允许使用架构的巨大页面大小。对于 x86_64,这是 1Mb,请参阅https://en.wikipedia.org/wiki/Page_(computer_memory)#Huge_pages为全表。

答案3

板似乎是您正在寻找的确切解决方案。平板是由内核预先分配的内存单元,应该或多或少地避免分配开销,这似乎正是您想要达到的目标。

有关更多信息,请参阅维基百科:Slab 分配

将页面大小(如果可能)更改为 1MiB 会导致过多的内存浪费。许多(我的意思是几十个)子进程和守护进程只占用几 kB 的内存。有那么便宜的内存吗?

相关内容