我正在研究在运行许多 Windows 服务器的主机上过度使用内存的可能性。虚拟机由Libvirt支持和管理QEMU / KVM。我目前的观察是,一旦 Windows Server 启动,QEMU 进程将占用与选项中定义的相同数量的RSS内存。另一方面,Linux 虚拟机的行为方式则不同,因为随着虚拟机的运行,它会逐渐消耗更多的内存。-m
过度提交内存的一种解决方案是启用KSM。但该解决方案的缺点是它确实需要一些时间来进行页面迭代和合并。因此它仍然可能允许在短时间内启动许多 Windows 服务器。
然后我看着记忆气球。我尝试给气球充气,然后立即放气,希望在主机上,RSS 不会增加。但显然事实并非如此。我观察到,气球一泄气,主机 RSS 内存就会增加。
我想知道 Windows 内存管理系统是否在调用ExFreePool
或其他调用后自动将内存清零。
Bar*_*958 12
\n\n我想知道 Windows 内存管理系统是否在 ExFreePool 或其他调用后自动将内存清零。预先非常感谢您的帮助。
\n
它不是。实际上,它\xe2\x80\x99s 非常容易检查。编写一个简单的驱动程序,发出一系列带有随机请求池大小的 ExAllocatePoolXxx 调用,用已知模式填充分配的内存,例如 GUID 和每次递增的全局计数器。RtlFillMemory 调用后释放内存。通过转储池区域的最开始部分,开始检查您从 ExAllocatePoolXxx 获得的内容,在某个时刻,您将在您分配的内容中看到您自己的签名。
\n 归档时间: |
|
查看次数: |
611 次 |
最近记录: |