该服务器有 16 GB 的内存。我们希望在此服务器上运行尽可能多的虚拟机。它们用作 Jenkins VM 的自动化测试“从属”,后者负责分配测试作业。
目前,虚拟机在 vSphere 中使用的内存总计为 10.6 GB。
但是 vSphere 报告称使用了 16 Gig 中的 12.1 Gig。这意味着 vSphere 本身使用了 1.5 Gig。
因此服务器上只剩下 4G。
请注意,vCenter 报告称下面每个虚拟机使用的内存都少于其全部内存。
- vCenter Server Appliance 占用 4 GB。已使用 10%。
- Jenkins Appliance 占用 500 Meg。已使用 14%。
- Windows 7 x64 占用 2GB。已使用 15%。
- Windows 7 x64 占用 2GB。已使用 15%。
- Windows 7 x64 占用 2GB。已使用 9%。
问题: 1. 剩余 4 GB 是否意味着我们只能运行另外 2 个 2 GB 的 Windows 虚拟机?
使用的百分比是否允许我们“过度承诺”?除非被测软件发生内存泄漏,否则机器很少使用更多内存。
如果我们“过度承诺”并且机器确实需要更多内存,会发生什么?
如果我们不能过度使用,关闭 vCenter Server 是否有意义?由于我们只有一台 vSphere 服务器,因此似乎 vCenter 有点过头了。我们真正需要它只是为了“克隆”,因为 vSphere 客户端不支持克隆。所以也许大多数时候关闭电源更好。
还有其他想法或建议可以运行更多虚拟机吗?
答案1
1:是的,你可以过度承诺。详情请参阅 2、3
2:如果物理内存已满,ESX(i) 将启动其Memory Ballooning
、Transparent Page Sharing
和Memory Compression
功能。如果在使用这些功能时内存已满,主机将进行交换。
记忆膨胀
当管理员安装 VMware Tools 时,memctl 驱动程序(又称 ballooning 驱动程序)会安装在客户机操作系统中。此驱动程序会在客户机内部创建一个内存气泡或“气球”,因此操作系统会将其视为应用程序正在使用。然后,虚拟机管理程序会利用通过充气此气球释放的物理 RAM 并将其分配给需要它的其他虚拟机。内存气球会带来少量处理开销,如果它强制客户机操作系统开始分页到磁盘,则会显著降低虚拟机上应用程序的速度。如果虚拟机不使用内存,那么内存气球本身并不是严重的性能问题,但它表明主机上的物理内存正在变得稀缺。与其他处理内存过量使用的方法相比,内存气球的最大优势之一是,内存气球驱动程序允许客户机操作系统选择将哪些页面交还给虚拟机管理程序以供其他虚拟机使用。这样,可以安全地释放未在活动使用的页面,从客户机的角度来看,几乎不会对性能造成影响。
透明页面共享
透明页面共享是内存的“重复数据删除”,允许将相同的虚拟内存页面折叠成主机物理 RAM 中的单个页面,从而释放内存用于其他用途。例如,如果主机上的多个虚拟机都运行相同的操作系统和应用程序,则虚拟机管理程序将通过哈希比较内存页面,以找到可以通过合并释放的相同页面。膨胀和透明页面共享协同工作,以确保过度使用的内存不会对客户虚拟机中的应用程序造成性能问题。
内存压缩
虚拟机管理程序的内存压缩和磁盘交换是 ESX/ESXi 为防止虚拟机管理程序在主机上的内存资源达到极限时崩溃而采取的最后措施。虚拟机管理程序对内存页面的压缩也会导致额外的处理开销;但是,与将页面交换到存储设备所导致的速度减慢相比,这种开销很小。vSphere 4.1 及更高版本的用户将能够利用此功能来减少物理内存资源即将耗尽时发生的交换量。
3:如果关闭电源,您将无法再使用它,因此不会记录任何统计数据等。我不知道 HA 和其他东西会发生什么。我不会关闭它。如果虚拟机处于空闲状态,ESX 会知道并处理它。请注意,列出的内存功能是在需要时使用的(请参阅说明),因此使用的内存越多,内存增加的就越少。尝试大幅浪费内存,看看您的 vCenter VM 如何缩减。我认为它不会在空闲时浪费太多内存
4:查看链接白皮书了解如何获得答案