大幅增加页面文件大小是否存在风险?

大幅增加页面文件大小是否存在风险?

我需要 64GB 内存来容纳整个深度学习数据集,但只有 12GB RAM。虚拟内存是次优选择,我了解到可以通过增加页面文件大小来有效增加虚拟内存 - 但此来源这表明它会增加系统不稳定性。

所有其他来源都表明了相反的情况,仅指出 SSD 寿命缩短,这不是问题 - 但我宁愿不冒险;话虽如此,在不导致不稳定的情况下可以增加页面文件大小的限度是否有限制?


附加信息:Win10 操作系统,26GB 操作系统分配的页面文件大小(需要 52GB + c,c = 安全最小值)


预先解答:按描述进行这里,约 70GB内存映射数据;平均数据加载加速为42倍。我怀疑这个数字可能会上升到~130,但现在还不行,除非有人回答.最后,这个可持续的和不会降解SSD,因为使用率为 99.9% 以上。最终会发布包含详细信息的完整答案。

答案1

页面文件支持将 RAM 中的 4K 数据块(称为页面)交换(又称分页)到磁盘并返回。

CPU 正在运行的代码必须存在于物理 RAM 中。此外,与其他操作系统一样,Windows 使用“未使用的”RAM 来缓存磁盘 I/O,直到其被刷新(如果磁盘数据只是读取和重新读取,它可能会长时间停留在“未使用的”RAM 中)。

在多任务操作系统中,可能有一些代码属于正在等待最近未发生的事件(如用户输入)的任务。将其分页到磁盘文件并在事件发生时将其调回有助于提高系统性能,这样实际上正在计算机上执行某些操作的代码就可以利用空闲的 RAM。

当然,如果突然请求的内存量超过系统内存量,操作系统可以对可能正在执行某些操作但优先级较低的代码进行分页。在大多数情况下,如果物理 RAM 不超过可用内存量,这比直接拒绝程序的内存请求要好。

在某些时候,如果您继续分配不存在的内存,您的程序将与计算机上运行的基本 Windows 服务和其他程序竞争。此外,您已经删除了所有未使用的 RAM,因此磁盘 I/O 根本不会被缓存。您将体验到性能的大幅下降,这将影响系统上的所有进程,包括系统进程。

被描述为有害的不稳定性可能来自基本的 Windows 功能变得无响应,因为它们在磁盘和 RAM 之间来回切换,并与机器学习程序和其他程序进行交换。例如,单击桌面图标可能需要几分钟才能响应。因此,您可能会认为系统完全冻结了,而实际上它只是在疯狂地进行交换,最终会做出响应。

答案2

听起来你的程序在运行时会遍历整个数据集。这将导致大量的交换。你指出,快速的 SSD 可以达到 RAM 速度的 10%——但你的程序可能需要 100 字节的数据,而系统则继续从磁盘读取 4096 字节。你的 10% 并不意味着它只需要 10 倍的时间来运行。

此外,如果您的程序在处理数据时修改数据,情况会变得更糟——脏页会被写入。如果对数据进行大量修改,您将耗尽驱动器的备用块,并且写入速度会变得非常糟糕。(页面必须先擦除,然后才能写入。我最后知道这是一个以大量数据来衡量的操作秒,尽管我没有找到当前数据。通常,驱动器会保留一些空页来处理写入,但是当写入速度快于擦除页面的速度时,池就会耗尽,写入必须等到擦除器完成页面擦除。)

相关内容