【发布时间】:2011-09-09 06:21:42
【问题描述】:
页面大小是否恒定?更具体地说,getconf PAGE_SIZE 给出 4096,足够公平。但这可以通过程序的运行时改变吗?还是在整个操作系统进程产生过程中保持不变。 IE。 ,一个进程是否有可能拥有 1024 和 2048 以及 4096 的页面大小?我们现在只讨论虚拟页面大小。但更进一步,虚拟页面是否有可能跨越更大尺寸的物理页面?
【问题讨论】:
页面大小是否恒定?更具体地说,getconf PAGE_SIZE 给出 4096,足够公平。但这可以通过程序的运行时改变吗?还是在整个操作系统进程产生过程中保持不变。 IE。 ,一个进程是否有可能拥有 1024 和 2048 以及 4096 的页面大小?我们现在只讨论虚拟页面大小。但更进一步,虚拟页面是否有可能跨越更大尺寸的物理页面?
【问题讨论】:
一个进程可以使用多个页面大小。在较新的内核上,这甚至可能在没有通知的情况下发生,请参阅Andrea Arcangelis transparent huge pages。
除此之外,您可以请求具有不同(通常更大)页面大小的内存,而不是hugetlbfs。
拥有大页面的主要原因是性能,处理器中的 TLB 大小非常有限,更少但更大的页面意味着更多的命中。
【讨论】: