我计划为我的办公室部署 VMware vSphere Hypervisor 来托管两台基于 Debian 的虚拟机:
- 用于内部应用程序的 Apache+MySQL 网络服务器:CRM、票务系统和 wiki。
- Git 和 Subversion 的存储库服务器,通过 HTTP 访问。
我们有一台物理机,具有 500GB 的存储空间、足够的 CPU(4 x 2GHz Intel Xeon)和 16GB 的 RAM。我想知道应该为虚拟机管理程序保留多少内存。我们以前使用过 VMware Server,在 vSphere 中可能不需要考虑这一点。
第二个问题:您对如何在虚拟机之间分配可用 RAM 有什么建议吗?
谢谢!
答案1
可以在 vSphere 中设置预留,但在正常情况下您不需要这样做。您不需要在 ESXi 上为虚拟机管理程序进行任何自动内存预留。它将保留足够的内存供其自身使用。请注意,vSphere(从头开始)与 VMWare 的其他产品完全不同。那里几乎没有通用代码。因此,在 vSphere 环境中,对工作站或服务器应用的调整几乎完全无关紧要。
也就是说,如果您过度分配 RAM,并且其中一个虚拟机需要的内存超过主机可以提供的内存,您的虚拟机将开始将内存交换到磁盘(超级慢!)。只要您的虚拟机不尝试消耗所有分配的内存(通常只有某些产品(例如 SQL 服务器)会以这种方式运行),您就可以分配高达(甚至超过)100% 的主机 RAM(因为它们永远不会真的无论如何都要用完)。
如果您想稳妥行事,请至少保留 2Gb 未分配空间,并将剩余的 14Gb 按照您的喜好分配给虚拟机。假设您最终拥有 2 个虚拟机,每个虚拟机的 RAM 为 6 到 8Gb,则每个虚拟机的额外 RAM 开销将为 300 到 400Mb。
看看vSphere 资源管理指南实在是太多了。
但最重要的是,我最重要的建议是:不要调整任何设置或以任何方式更改主机或虚拟机配置上的任何默认值,除非您有非常具体的需求,而该需求显然可以通过特定设置解决。不要开箱即用地进行任何“听起来是个好主意”的更改,这真的会让您很快陷入“现在我有很多奇怪的问题,没有人能帮我,因为我的系统配置与其他人的系统配置完全不同”的境地。