为什么操作系统的页面大小是4k,即使内存足够大,它仍然坚持保持为4k?

11
据我所知,在操作系统内存管理中,页面大小为4k。当内存过小时,这可能是一个优势。 但是我们机器上的内存现在已经足够大了,为什么页面大小仍然是4k?将其更改为1M或更大的限制是什么?

页面是从磁盘交换的单位。因此,使页面更大会使交换变慢。 - Barmar
你有什么实际的编程问题吗?你想改变页面大小吗? - Raymond Chen
据我所知,引入页面概念到内存管理中的目的是为了支持更大的程序使用较小的内存。4K大小是一种经验值。我的讨论背景是服务器机器的内存足够大,每个程序使用的内存越来越多。操作系统是否应该增加页面的大小? - Perth Charles
1个回答

14

4KB只是许多架构支持的默认页面大小。

然而,一些架构支持切换到使用更大的页面大小。例如,i386支持切换到使用2MB或4MB页面大小的巨大页面模式,x86_64支持2MB巨大页面,并且对于一些更新的CPU,它甚至支持1GB页面大小(大页面)。

许多文件系统使用精确页面大小或其小倍数(约为4KB-8KB)。此外,许多操作系统仅在整个页面中分配内存。在每个内存分配请求上分配2MB页面会浪费很多内存。


正如你所说,“在每个内存分配请求上分配2MB页面将浪费大量内存”,但如果程序需要处理大量的数据,比如500G,并且这些数据是“随机”的,那么TLB缺失将成为性能瓶颈。 - Perth Charles
我知道一些CPU已支持可变大小的页面,但这并不是主要趋势。使用2M页面的最小限制是多少? - Perth Charles
使用大页面可以提高速度,但只有几个百分点。根据维基百科的说法,它可能会根据应用程序和分配大小而提高达15%的速度。虽然15%是一种改进,但并不算很大。 - mvp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接