我有一个内存很大的系统。现在,为了防止单个应用程序分页,我已经完全禁用了分页文件。我遇到的问题是,对于我关心的单个进程,我无法最大限度地利用内存。我希望对单个进程禁用分页,这样它就不会分页,而且它可以最多使用(95%?)内存;所有其他进程都应该能够跳出。现在,我们在禁用的分页文件中使用~%80的可用内存,但我们知道我们并不关心那些被发送到分页文件的进程。这不是我正在运行的开源程序,所以我不能修改代码来使用其他.NET/Windows调用来阻止自己分页。
我认为在Linux上,这就是所谓的“交换”。
发布于 2015-08-10 14:12:52
您不能告诉O.S.将进程数据保存在内存中;如果进程具有“内存中锁定页”的权限,进程可以自己完成它,但是它必须在代码中显式地请求它;否则,Windows将在它认为合适的情况下退出。
如果完全禁用页面文件,Windows只会为自己保留一些内存,并在内存已经使用过多时开始拒绝内存分配请求。
如果您将页面文件保持为启用状态(您确实应该这样做),那么您绝对无法控制什么以及什么时候会被分页。
无论如何,您应该对内存管理器有更好的信任:它的工作是将未使用或不需要的数据分页出来,如果一个进程正在积极地访问它的内存,那么它被分页的可能性很小。当然,除非内存使用率太高,以至于系统无法处理;但是如果是这样的话,那么您确实应该考虑向框中添加更多的内存。
https://serverfault.com/questions/713189
复制相似问题