我正在尝试在计算机上运行一个非常长且慢(但很重要)的后台进程。它花了整个周末,现在仍在运行。
问题是,此进程会扫描数十 GB 的磁盘文件(一些本地文件,一些网络上文件),而 Windows 显然喜欢将所有其他程序调出,以便可以使用几乎每兆字节(4GB RAM 中的每兆字节)作为此程序的磁盘缓存。尽管我使用任务管理器将其优先级设置为“低”,但这种情况仍然会发生。Windows 不仅将其他所有内容调出,而且这个低优先级进程似乎在硬盘上“优先使用”,因此其他应用程序可能需要几分钟才能调回。这会打乱我想要做的所有其他工作。
我在 Win7 x64 上,但我在 WinXP 中也观察到了同样的现象(我想说在 XP 上情况更糟...至少在 Win7 中,当我使用单个程序一段时间后它会再次变得响应。)
除了完全禁用页面文件(无论如何都需要重新启动)之外,是否可以限制单个进程或整个系统使用的磁盘缓存?
答案1
你还不够积极。除非你进一步降低优先级,从“低”降低到“空闲”,否则 Windows 7 不会取消 I/O 优先级。
Windows XP 没有 I/O 优先级。即使有“优先级空闲”进程,它也会一直存在这个问题。