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,那有什么问题? ”?例如,是否需要告知客户虚拟机与物理硬件不同?
应该使用什么特定指标来度量RAM使用率。跟踪“活动”与时间的峰值?看“已消费”?
更新:我使用vCenter Operations Manager对此环境进行了配置,并获得了有关上面列出的群集统计信息的一些详细信息。虽然事情肯定是过量的,但VM实际上配置得过多了不必要的RAM,以至于实际的(微小的)内存占用量在群集/主机级别上都没有显示任何内存争用...
我的收获是,虚拟机的大小应该确实合适,并具有用于操作系统级缓存的一些缓冲区。出于无知或供应商“需求”而过度使用导致出现此处出现的情况。内存膨胀似乎在每种情况下都是不好的,因为这会影响性能,因此正确调整大小可以帮助防止这种情况。
更新2: 其中一些虚拟机开始崩溃:
kernel:BUG: soft lockup - CPU#1 stuck for 71s!
VMware将其描述为过度使用内存过多的症状。所以我想这回答了问题。
vCops“可回收废物”图...