假设我有大量 RAM。假设为 64GB。即使是游戏 PC,这也很多。现在 Windows 中页面文件的默认位置位于主操作系统驱动器上,无论是 HDD 还是 SSD,它们通常速度更快,但仍然不如 RAM 快。
有东西告诉我,禁用硬盘上的页面文件或创建虚拟 RAM 驱动器并让页面文件留在那里可以使 Windows 将其所有虚拟内存移动到 RAM,从而提高系统的性能,但我对这个领域不是很了解,所以这可能根本不是真的。
我都尝试过了,但是凭借我对记忆事物的了解水平,我无法分析结果并得出明确的结论。
这样做有用吗?如果不行,原因何在?
答案1
无论有多少 RAM,您都希望系统能够高效地使用它。完全没有页面文件会迫使操作系统低效地使用 RAM,原因有二。首先,它无法使页面可丢弃,即使它们很长时间没有被访问或修改,这会迫使磁盘缓存变小。其次,它必须保留物理 RAM 来支持不太可能需要它的分配(例如,私有的可修改文件映射),这会导致您拥有大量可用物理 RAM,但分配被拒绝以避免过度使用的情况。
例如,假设某个程序对一个 4GB 的文件进行可写的私有内存映射。操作系统必须为该映射保留 4GB 的 RAM,因为该程序可能会修改每个字节,而且除了 RAM 之外没有地方可以存储它。因此,4GB 的 RAM 基本上就浪费了(它可以用来缓存干净的磁盘页面,但仅此而已)。
如果您想充分利用 RAM,即使从未使用过,也需要有页面文件。它充当一项保险政策,允许操作系统实际使用其拥有的 RAM,而不必将其保留以备极不可能的情况。
设计操作系统行为的人并不是傻子。拥有页面文件可以让操作系统有更多选择,而不会做出错误的选择。
尝试将页面文件放入 RAM 中毫无意义。如果您有大量 RAM,页面文件不太可能被使用(它只是需要在那里),因此它所在的设备有多快并不重要。
答案2
你的假设完全正确。
内存管理算法非常复杂,而且无论如何都不完美。因此,即使有足够的空闲 RAM,也会发生交换。在某些系统上,例如Linux
,您可以控制交换性,而在其他情况下则不能。通过在仍有足够 RAM 时交换数据,系统以自己的方式为可能耗尽 RAM 的情况做好准备。
因此,禁用交换功能可能会提高您的性能,因为您将只使用速度更快的 RAM,正如您所说的那样。
有一件事需要考虑(你已经提到了)——你需要足够的RAM 来容纳你正在执行的所有程序,否则你将面临运行内存不足。在这种情况下,性能会下降,某些进程可能会被操作系统终止,系统可能会崩溃/冻结。(阅读更多相关信息这里)
在某些机器上,尤其是将交换文件保存在 HDD 而不是 SSD 上的机器上,禁用交换的效果非常明显。在其他机器上,效果并不明显。但即使您没有获得明显的改善,也可以换个角度思考,通过禁用交换,您将节省一些 SSD 上的磁盘空间。
通过禁用交换,您还可以防止内存算法执行不必要的操作 - 将数据从 RAM 移动到交换,反之亦然 - 对于 SSD,这将防止过度磨损。无论如何,通过消除不必要的操作,这将提高性能。
另请阅读:
答案3
您可以安全地禁用页面文件吗?
如果用尽了可用内存(包括虚拟内存),系统将无法继续保证确定性执行,并自行终止。在此之前,操作系统将执行各种其他操作,例如终止使用过多内存的程序。我想说的是,内存总是有限的,每个操作系统都可以处理这个问题。因此,将总可用内存限制为 64 GB 不会损害 Windows - 许多系统即使使用页面文件也无法超过 8 GB,因为 1 或 2 GB RAM 的页面文件通常比 6 或 7 GB 小很多。应该注意的是,只要您有过多的未使用 RAM,操作系统维护页面文件的开销就无法衡量。
将页面文件放在 ramdisk 上有意义吗?
为了增加可用内存,大多数(如果不是全部)高级操作系统都使用某种交换文件,它们会占用 RAM 中一些很长时间没有访问的内存,将这些内存写入硬盘(交换文件又名页面文件),并从 RAM 中删除内存,以便有更多更快的内存可用。交换文件用于将内存的最大大小扩展到可用 RAM 的大小之外。
因此,使用 ramdisk(这会减少 ramdisk 大小的可用内存)来托管交换文件(这会增加交换文件大小的可用内存)是可行的,但意义不大。它不会比禁用页面文件提供更多的内存,但它仍然需要系统运行分页算法。
答案4
如果您没有页面文件,那么一旦发生 BSOD(崩溃),Windows 将无法写入崩溃转储文件。这意味着您将无法使用适当的工具来分析问题。
将页面文件放在 RAM 中几乎没有用,因为它可能会在崩溃时丢失。
有关详细信息,请参阅 Microsoft 文章了解故障转储文件。