了解 ESXi 和内存使用情况

了解 ESXi 和内存使用情况

我目前正在测试一台测试机上测试 VMWare ESXi。我的主机有 4GB 的 RAM。我有三个客户机,每个客户机分配的内存限制为 1GB(仅保留 512MB)。

主机摘要屏幕显示内存容量为 4082.55 MB,在两个客户机运行时使用量为 2828 MB。这似乎很合理,每个虚拟机 2 GB,加上主机的开销。800MB 似乎很高,但仍然合理。

但是在资源分配屏幕上,我看到内存容量为 2356 MB,可用容量为 596 MB。

在配置选项卡下,内存链接我看到物理总量为 4082.5 MB,系统为 531.5 MB,VM 为 3551.0 MB。

我只为每个虚拟机分配了 1 GB,而当两个虚拟机运行时,它们占用的内存几乎是分配内存的两倍。为什么会这样?为什么资源分配屏幕对我的帮助这么小?

当我尝试运行第三台虚拟机时,我收到一条消息,称内存许可检查失败,这听起来像是内存不足。我的生产机器将拥有更多的内存,但我想更好地了解 ESXi 的工作原理。

答案1

有几件事:

  1. 不要对 RAM 使用限制。要限制 VM 可以使用的 RAM 量,请在定义 VM 时使用 RAM 量。否则,如果您在 VM 上设置的 RAM 限制小于为 VM 定义的 RAM 量,则 ESX 将被迫分页。如果要进行分页,您希望客户机在其内部进行分页,因为它比 ESXi 更了解应该分页哪些数据。在定义 VM 时,您希望将 RAM 定义为 VM 可能需要的最高 RAM 量,或您希望 VM 使用的上限。

  2. 除非绝对必要,否则不要为任何虚拟机的任何资源(包括内存)使用预留。如果您安装 VMTools(除非有充分理由不这样做,否则您始终都应该这样做),ESXi 可以回收内存,尤其是在未使用内存时。设置预留将强制 ESXi 提供物理内存,即使客户机不需要它。相反,在存在资源争用时,使用共享来设置优先级。

以上内容非常重要。如果不遵循这些,您将面临分页效率低下和资源分配效率低下的问题,因为不需要 RAM 的 VM 无论如何都会获得 RAM,而可以使用 RAM 的 VM 却得不到 RAM。您还经常会遇到需要 RAM 的 VM,但即使可以提供 RAM,也可能无法获得 RAM。

这两个屏幕之间的区别在于,摘要显示了实际使用了多少 RAM,而总容量显示了保留后可使用的量。

回答你的问题,这是虚拟机管理程序的预留设置。这实际上说明了我上面的观点,即除非绝对必要,否则你不应该使用预留。ESXi 虚拟机管理程序的内存预留可能太高。你可以调整这一点。参考以下文章:

http://vm-help.com/esx40i/memory_allocation.php

但我不建议在生产中这样做。

相关内容