use*_*322 105 memory windows performance pagefile virtual-memory
想象一下,我有大量的 RAM。假设 64GB。即使是游戏 PC 也是如此。现在,Windows 中页面文件的默认位置在主操作系统驱动器上,无论是 HDD 还是 SSD,它们通常都更快,但仍然不如 RAM 快。
有些东西告诉我禁用硬盘驱动器上的页面文件或创建虚拟 RAM 驱动器并让页面文件在那里可以使 Windows 将其所有虚拟内存移动到 RAM,从而提高系统的性能,但我对此不太了解区域,所以这可能根本不是真的。
两种方法我都试过,但是我无法以我在记忆方面的知识水平来分析结果以得出明确的结论。
这行得通吗?如果不是,为什么?
Dav*_*rtz 140
无论您拥有多少 RAM,您都希望系统能够有效地使用它。由于两个原因,根本没有分页文件会迫使操作系统低效率地使用 RAM。首先,它不能使页面可丢弃,即使它们很长时间没有被访问或修改,这也迫使磁盘缓存变小。其次,它必须保留物理 RAM 来支持不太可能需要它的分配(例如,私有的、可修改的文件映射),导致您可以拥有大量空闲物理 RAM 但分配被拒绝的情况避免过度使用。
例如,考虑一个程序是否对 4GB 文件进行了可写的私有内存映射。操作系统必须为此映射保留 4GB 的 RAM,因为该程序可以想象地修改每个字节,并且除了 RAM 之外别无他处。所以马上,4GB 的 RAM 基本上被浪费了(它可以用来缓存干净的磁盘页面,但仅此而已)。
如果您想充分利用您的 RAM,您需要有一个页面文件,即使它从未使用过。它作为一种保险政策,允许操作系统实际使用它拥有的 RAM,而不必为极不可能的可能性保留它。
设计操作系统行为的人不是傻子。拥有分页文件为操作系统提供了更多的选择,而且不会造成糟糕的选择。
尝试将分页文件放在 RAM 中是没有意义的。而且,如果您有大量 RAM,则不太可能使用分页文件(它只需要在那里),因此它所在的设备的速度并不特别重要。
Art*_*ner 36
你的假设是完全正确的。
内存管理算法非常复杂,无论如何都不完美。因此,即使有足够的备用 RAM 也会发生交换。在某些系统上,例如Linux,您可以控制swappiness,而在其他系统上则不能。通过在仍有大量 RAM 时换出数据,系统以自己的方式为可能耗尽 RAM 的情况做好准备。
因此,禁用交换功能可能会提高性能,因为您将只使用如您所说的更快的 RAM。
需要考虑的一件事(您已经提到过) - 您需要有足够的RAM 来容纳您正在执行的所有程序,否则您将面临内存不足的风险。在这种情况下,性能会下降,某些进程可能会被操作系统终止,系统可能会崩溃/冻结。(在此处阅读更多相关信息)
在某些机器上,尤其是那些将交换文件保存在 HDD 而非 SSD 上的机器上,禁用交换的效果非常明显。在其他方面,它不是那么明显。但即使你没有得到明显的改进,换一种方式想一想,通过禁用交换,你会在你的 SSD 上节省一些磁盘空间。
通过禁用交换,您还可以防止内存算法执行不必要的操作 - 将数据从 RAM 移动到交换,反之亦然 - 在 SSD 的情况下,这将防止过度磨损。无论如何,这将通过消除不必要的操作来提高性能。
另外,请阅读:
Pet*_*ter 14
如果您的可用内存(包括虚拟内存)用完,系统将无法继续保证确定性执行,并自行结束。在此之前,操作系统会做各种其他的事情,例如杀死使用过多内存的程序。我想说的是,内存永远是有限的,每个操作系统都可以解决这个问题。因此,将总可用内存限制为 64 GB 不会损害 Windows - 许多系统即使使用页面文件也不能超过 8 GB,因为使用 1 或 2 GB 内存时,页面文件通常比 6 或 7 GB 小得多。应该注意的是,只要您有过多的未使用 RAM,操作系统维护页面文件的开销将无法衡量。
为了增加可用内存,大多数(如果不是全部)高级操作系统都使用某种交换文件,它们会占用 RAM 中的一些内存并且有一段时间没有被访问,将内存写入硬盘(swapfile aka pagefile),并且从 RAM 中删除内存,以便获得更快的内存。交换文件用于将内存的最大大小扩展到可用 RAM 的大小之外。
因此,使用 ramdisk(通过 ramdisk 的大小减少可用内存)来托管交换文件(通过交换文件的大小增加可用内存)是可行的,但没有多大意义。它不会提供比禁用页面文件更多的内存,但它仍然需要系统运行分页算法。
重申其他人所说的,将交换移动到直 RAM 磁盘是毫无意义的(在最常见的情况下,见下文)。它实现了在某个时刻,当系统缺乏可用内存时,一些数据以相当低效的方式从 RAM 移动到 RAM。
在 HDD/SSD 上进行交换实现了操作系统可以清除一些完全未使用的 RAM 页面并将释放的空间用于例如文件缓存或其他系统缓冲区。您可能没有意识到系统分配的这些 RAM 缓冲区较少,因为没有页面文件就没有可用的虚拟内存;所以实际上你可能会通过禁用交换来阻碍你的表现。
但是,作为交换驱动器的压缩 RAM 磁盘,即“ZSWAP”驱动器,通过将一段 RAM 的空间效率提高到一个一定程度上。
从理论上讲,将页面文件放入 RAM 完全没有意义,因为您只是在消耗您应该获得的东西,而 Windows 是基于页面文件不会用于此类目的的假设而构建的。
然而在实践中,有缺陷的设计和理念甚至可以使它进入 Windows 内核,而微软的内存管理也不一定是完美的。许多人发现将页面文件放入 Ramdisk 确实会提高性能,只要您有足够的内存。
我编译了一篇文章,其中显示了来自单个论坛线程的此类用户的集合,他们发现尽管有大量可用的 RAM,但页面文件仍在使用:
不要禁用交换文件 这不仅仅适用于内存不足的情况。 关闭它并没有直接的性能提升,Windows 仅在需要时从它读取,它一直写入它,因此它在需要时就准备好了。
如果内存大小超过 4GB 左右,则可以将其减少到大约 2/3 左右,因为它存储压缩的内存映像。如果 SSD 上没有空间,您可以将其放在较慢的硬盘上,该硬盘不会被其他频繁访问的磁盘访问。但在某个地方拥有一个是有好处的。
有关原因的更多信息,请参阅此答案。https://superuser.com/a/286476/4236
小智 5
对于 Windows,来自马口:
\n\n\n\n\n\n\n有些人认为没有分页文件会带来更好的性能,但一般来说,有分页文件意味着 Windows 可以在修改列表上写入页面(表示未主动访问但尚未保存到磁盘的\xe2\x80\x99 页面) )输出到分页文件,从而使该内存可用于更有用的目的(进程或文件缓存)。因此,虽然某些工作负载在没有分页文件的情况下可能会表现得更好,但一般来说,拥有分页文件意味着系统可以使用更多可用内存*(不用担心 Windows 将\xe2\x80\x99 无法在没有分页文件的情况下写入内核故障转储)大小足以容纳它们的分页文件)。
\n