更改内存页面的大小?


6

我想将内核的页面大小从4KB更改为4MB,因为我在计算机上增加了大量RAM,并且我再也用不完了。

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

跑步时我什么也找不到make menuconfig。有没有办法做到这一点?

Answers:


4

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

另请注意,这不允许您选择任意页面大小。我允许使用该体系结构的巨大页面大小。对于x86_64,这是1Mb,有关完整表,请参见https://en.wikipedia.org/wiki/Page_(computer_memory)#Huge_pages


2

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


为了验证PAGE_SIZE您可以使用命令getconf PAGE_SIZE
马克·斯图尔特

0

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

有关更多信息,请参见Wikipedia:平板分配

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.