我想更好地了解 VmWare ESXi 内存过度使用的可能性。我已经从 VmWare 阅读了这篇论文,因此我熟悉一般概念,例如管理程序交换、内存膨胀和页面共享。似乎这些技术的组合允许相当大程度的过度使用。但是,我不确定。
我正在部署一个虚拟测试实验室,该实验室由 4 组相同的虚拟服务器和工作站以及几个虚拟路由器实例组成。总的来说,我预计将运行大约 20 台虚拟机,Windows XP、Windows 7 和 Ubuntu 用于工作站主机,CentOS 和 Windows 2008 Server 实例用于服务器。
然而,问题是主机只有 12GB 的 RAM,我无法选择再填充一些。我想知道什么是配置主机的最佳选择,以便在约束内实现合理的性能。
我有这两个选择:
- 为每个虚拟机分配尽可能少的 RAM。
- 分配大量(例如每个实例 4 GB)并让气球驱动程序完成剩下的工作。
- 还有别的吗?
哪个效果更好?机器大部分时间都是闲置的,所以我没有任何主要的性能期望,但它们应该运行得相当平稳。
更多(moar)RAM 总是更好,如果获得它的路径是明确的。在大多数 VMWare 部署中,您会比 CPU 资源更快地用完 RAM。
我建议为每个特定的 VM 提供最低合理数量的 RAM,确保在每个 VM 中安装并运行 VMWare 工具。这控制气球驱动程序。
处理 RAM 受限环境的一种方法是设置基本的资源分配(共享)规则。这些仅在发生争用时起作用。在下图中,我降低了几个虚拟机的“共享”优先级,并提高了其他虚拟机的优先级。这允许您控制在 RAM 紧张时优先使用哪些 VM。
如果您使用这种方法,您将不得不决定 VM 的相对重要性。应用程序服务器可能优先于 DHCP 服务器……或空闲的 Windows XP 实例。
(ewwhite 所说的一切)加上:
内存过量使用可能对您毫无帮助,因为您将在 RAM(不同的操作系统)中混合运行不同的数据集。只有当你有大量几乎相同的数据时(比如每个人都有完全相同的主图像的大型 VDI 服务器),它才会有所帮助。