VMware 内存管理似乎是一个棘手的平衡行为。对于集群 RAM、资源池、VMware 的管理技术(TPS、膨胀、主机交换)、来宾内 RAM 利用率、交换、预留、共享和限制,存在很多变数。
我处于客户端使用专用 vSphere 集群资源的情况。但是,他们正在配置虚拟机,就好像它们在物理硬件上一样。反过来,这意味着标准 VM 构建可能具有 4 个 vCPU 和 16GB 或更多 RAM。我来自从小开始(1 个 vCPU,最小 RAM)的学校,检查实际使用情况并根据需要进行调整。不幸的是,许多供应商的要求和不熟悉虚拟化的人要求更多的资源而不是必要的……我对量化这个决定的影响很感兴趣。
来自“问题”集群的一些示例。
资源池摘要 - 看起来几乎 4:1 过度使用。请注意大量膨胀的 RAM。
资源分配 - 最坏情况分配列显示这些 VM 在受限条件下只能访问其配置 RAM 的 50% 以下。
上面列表中顶部 VM 的实时内存利用率图。分配了 4 个 vCPU 和 64GB RAM。它的平均使用量低于 9GB。
同一个VM的总结
在 vSphere 环境中过度使用和过度配置资源(特别是 RAM)的缺点是什么?
假设 VM 可以在更少的 RAM 中运行,是否可以说配置虚拟机具有比实际需要更多的 RAM 的开销?
什么是反驳:“如果 VM 分配了 16GB 的 RAM,但只使用了 4GB,有什么问题?? ”?例如,是否需要教育客户VM 与物理硬件不同?
应使用哪些特定指标来计量 RAM 使用量。跟踪“活动”随时间的峰值?看“消费”?
更新:我使用vCenter …
virtualization memory capacity-planning vmware-esxi vmware-vsphere
鉴于此问题中描述的受限 RAM 情况,最干净的方法(手动或编程)是什么:
假设有更多的物理 RAM 可供环境使用。
我发现我可以将虚拟机 vMotion 到另一台主机,这会清除膨胀状态。有没有其他有效的方法?
注意:我已经在环境中添加了几个主机和大约 512GB 的 RAM。膨胀的 VM 不会触发 DRS 重新平衡操作或自行解除膨胀。我不得不手动 vMotion 每个受影响的虚拟机来清除它,如下所示......
这是之前的...
之后...跟随 vMotion 到群集中的另一台主机。
如果我查看 vSphere 集群或资源池并看到一定程度的内存膨胀或交换,我如何确定哪些虚拟机受到影响?一旦我找到它们,我就知道如何处理它们:)
在下面的示例中,资源池中有 65 个虚拟机。只有不到 32 GB 的膨胀 RAM。如何确定哪些 VM 的一部分 RAM 膨胀或交换?