我们刚刚为开发部门购买了一台新服务器。它有 32GB 内存。我决定安装 Server 2008 R2,而不是 Hyper-V R2,主要是因为如果这台服务器需要执行其他任务,我希望它有完整的操作系统。
主机操作系统知道要使用多少内存?由于操作系统是 64 位的,如果它愿意,它可以使用全部 32GB。但是,一旦我分配并实际启动一个具有 10GB 内存的虚拟机,主机现在是否知道它只有 22GB 可用?我假设它将根据虚拟机的使用情况使用任何可用的内存,并在虚拟机启动和关闭时进行相应的调整?
答案1
对于大多数 VM 管理解决方案(我想也包括 Hyper-V),内存会被立即分配,因此主机就知道不能将其用于其他任何用途。
不过,它可能仅从虚拟池中分配,并且在页面首次使用后从实际 RAM 中分配,因此您可能不会看到 10Gb 立即从可用 RAM 中删除。这意味着操作系统可以将 RAM 用于磁盘缓存等用途,直到 VM真的需要它。
答案2
MS 有一篇非常好的文章这里。我通常为父分区保留 2 GB,然后根据每个 VM 或虚拟 RAM 数量增加它。
根据这篇文章:
“每个虚拟机内存开销的良好标准是,前 1 GB 虚拟 RAM 为 32 MB,每增加 1 GB 虚拟 RAM 则为 8 MB。在计算物理服务器上要托管多少个虚拟机时,应该将此考虑在内。内存开销取决于分配给每个虚拟机的实际负载和内存量”。