您的页面文件或交换分区应该有多大?

根据一个旧的经验法则,您的页面文件或交换应该是“RAM的两倍”或“RAM的1.5倍”。但是,如果您有16 GB的RAM,您真的需要一个32 GB的页面文件或交换吗?

您可能不需要那么多的页面文件或交换空间,考虑到现代计算机可能有一个空间非常小的固态驱动器,这让人松了一口气。

页面文件或交换分区的用途

相关:什么是Windows页文件,您应该禁用它吗?

首先,让我们记住Windows上的页面文件或Linux上的交换分区的真正用途。两者都为您的计算机提供额外的工作内存。例如,如果您的计算机有2 GB的RAM,并且您打开了大量的程序或文件,则您的计算机可能需要在其工作内存中存储3 GB的数据。计算机将额外的1 GB数据存储在其页面文件或交换空间中。页面文件或交换充当保存附加数据的“溢出”区域。您的计算机在使用数据时会自动将数据传输回RAM,在不使用数据时会将数据移动到页面文件或交换分区。

如果您使用的是较旧的台式计算机,您可能会在最小化桌面程序一段时间后看到这种情况。当您稍后将其最大化时,它将需要一段时间才会出现,当磁盘活动LED闪烁时,您会听到硬盘被磨掉的声音-它的数据正从您的页面文件或交换分区移回其RAM。RAM比页面文件或交换分区快得多。(这在现代计算机上很少见,因为现代计算机的RAM容量足以将桌面程序保存在RAM中。)

大多数应用程序都希望获得它们请求的内存。如果您的RAM已满,并且没有页面文件,然后打开另一个程序,则该程序很可能会崩溃。如果页面文件包含程序可以使用的额外空间,则可以避免这种情况的发生。

页面文件和交换分区的其他用途

Windows和Linux还将其页面文件和交换空间用于其他目的:

Windows崩溃转储:在Windows上,页面文件用于崩溃转储。要创建完整的内存转储,页面文件的大小必须至少为物理内存+1MB。对于内核内存转储,在RAM为8 GB或更大的系统上,页面文件必须至少为800 MB。大多数人不需要完整的内存转储,但是内核转储可能很有用。所需的800MB页面文件相当小,但它要求您使页面文件处于启用状态,并且不要禁用它。(此信息摘自Microsoft TechNet上的了解崩溃转储帖子。)。 Linux休眠:在Linux系统上,休眠-将系统RAM的内容保存到磁盘的断电状态,以便在您再次引导时可以重新加载-将系统RAM的内容保存到交换分区。这也可以称为“挂起到磁盘”。您可能会假设您需要一个与RAM一样大的交换分区才能休眠它,但实际上您只需要一个与您使用的RAM一样大的交换分区-因此,如果您只定期使用16 GB RAM中的4 GB,您可以休眠到一个4 GB的交换分区。但是,如果您使用的RAM超过4 GB,则可能无法休眠。选择与RAM大小相等的交换分区通常是安全的。请注意,这只适用于休眠-如果您从未计划休眠您的计算机,您不需要担心这一点。(Windows通过将数据保存到C:\hiberfil.sys文件来休眠,因此在Windows上休眠时不涉及页面文件。)

真正的问题是:您使用了多少内存?

没有一条固定的规则可以告诉您需要多少分页或交换空间。答案取决于您对计算机做什么以及您使用了多少内存。例如,如果您有8 GB的内存,但是您从未使用过超过8 GB的内存,那么您完全可以在没有分页或交换空间的情况下过活-当然,最终您很可能需要8 GB以上的空间。另一方面,您可能有一台内存为64 GB的计算机,但它可能经常处理100 GB的数据集-您可能希望至少64 GB的分页或交换空间是安全的。因此,具有8 GB RAM的计算机可能不需要页面文件,而具有64 GB RAM的计算机可能需要巨大的页面文件。这完全取决于计算机在做什么。

大多数人无法预测他们需要多少分页或交换空间。即使您现在查看了已使用的内存,也不知道一周或一个月后您的程序将需要多少内存。

Windows可以自动管理它

在Windows上,页面文件存储在C:\pagefile.sys。默认情况下,Windows自动管理此文件的大小。它一开始很小,如果您需要,它可能会增长到更大的大小。我们建议让Windows自己处理页面文件的大小。它应该不会占用系统驱动器上的大量空间。如果您的页面文件确实在系统驱动器上占用了大量空间,这是因为您过去需要这么大的页面文件,而Windows会自动为您增加它的大小。

例如,在只有4 GB RAM的Windows8.1系统上,我们的页面文件当前只有1.8 GB大小。我们没有那么多RAM,但Windows在我们需要更多内存之前会使用一个很小的页面文件。

删除页面文件没有任何性能优势,只有潜在的系统不稳定问题,如果您用完了所有的RAM,程序可能会崩溃。您可以删除页面文件以节省系统驱动器上的空间,但通常不值得这样做。

如果您想要手动设置大小(不推荐),请务必记住,真正重要的是您的系统将使用多少内存,而不仅仅是其RAM的大小。Microsoft的文档指出:

换句话说,这完全取决于您实际需要多少内存-可用内存总量就是“系统提交限制”。

Linux需要一个选择

相关:如何在Ubuntu 12.04中重新启用休眠

在Linux上,相当于Windows分页文件的是交换分区。因为这是一个分区,而不仅仅是一个文件,所以在安装Linux时,您必须选择交换分区的大小。当然,您可以稍后调整分区的大小-但这需要做更多的工作。Linux不能自动为您管理交换分区的大小。

每个Linux发行版都使用自己的安装程序,并且每个Linux发行版的安装程序中都有一些自动尝试选择合适的交换分区大小的逻辑。Linux发行版通常使用RAM的大小来帮助决定交换分区的大小。安装Ubuntu时,典型的默认交换分区大小似乎是内存的大小加上额外的0.5 GB左右。这确保了Hibernate将正常工作。

如果您在Linux安装程序中手动分区,那么RAM的大小加上0.5 GB是一个很好的经验法则,它将确保您可以真正休眠您的系统。这通常也应该超过足够的交换空间。如果您有大量的RAM-16 GB左右-并且您不需要Hibernate,但确实需要磁盘空间,那么您可能会使用一个2 GB的小交换分区。同样,这确实取决于您的计算机将实际使用多少内存。不过,最好还是留一些交换空间以防万一。

古老的“双倍内存”的经验法则适用于拥有1或2 GB内存的计算机。对于您需要多少页面文件或交换空间,没有万能的答案。这完全取决于您使用的程序以及它们需要什么。如果您不确定,坚持使用操作系统的默认设置几乎总是一个好主意。

图片来源:Flickr上的William Hook,Flickr上的Jean-Etienne Minh-Duy Poirrier

相关文章