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