Windows Server 2012 终端服务中的默认内存分配策略是什么?
我们遇到了一个问题,我们的一个应用程序需要大量的 RAM(大约 100GB)。这台机器有 256GB 的 RAM。然而,尽管这台机器没有内存压力,似乎有空闲的 RAM,但 Windows 只给这个进程提供了 50GB 的工作集,导致它疯狂地分页,因此运行速度非常慢。
因此,我试图找出有关 Windows 使用的默认内存分配策略的信息。请注意,此计算机上未安装 Windows Server Resource Manager,但我不知道 Windows 在没有它的情况下会做什么。它是否仍在进行某种“按进程均等”或“按用户均等”分配?
谢谢。
答案1
Windows Server 资源管理器折旧在 Windows Server 2012 中。微软建议使用 Hyper-V 来替代其功能(可能使用虚拟机优先级和主机预留等功能),但这确实是一个糟糕的替代。请参阅Windows Server 2012 R2 Windows 系统资源管理器替代品?了解详情。
至于 Window 的内存分配策略,你应该先阅读 Mark Russinovich 的一系列博客文章突破 Windows 的极限:物理内存。
我认为,除非该功能内置于应用程序中(例如,MS SQL、IIS 应用程序池),否则没有办法再将一定数量的 RAM 专用于特定进程。