页面大小是恒定的吗?具体来说,getconf PAGE_SIZE命令返回4096,这很好理解。但是这个值在程序运行时能否更改?或者它在整个操作系统进程中是恒定的?也就是说,一个进程是否可能同时具有1024、2048和4096个页面大小?现在我们只讨论虚拟页面大小。但更进一步,虚拟页面是否可能跨越更大尺寸的物理页面?
一个进程使用多个页面大小是可能的。在较新的内核上,这甚至可能会发生而不会被注意到,请参见Andrea Arcangelis透明巨大页面。
除此之外,您可以通过hugetlbfs请求具有不同(通常更大)页面大小的内存。
使用大页面的主要原因是性能问题,处理器中的TLB非常有限,较少但更大的页面意味着更多的命中。