为什么我的ESXi报告的内存使用量比我预期的要高?

高可用性群集中有一对ESXi(5.1)主机。 每台主机都有48GB的RAM。 我目前有18个VM正在运行,具有以下configuration的内存量:

  • 1个4GB,1个vCPU
  • 1个4GB,4个vCPU
  • 5x 2GB,1个vCPU
  • 5x 1GB,1个vCPU
  • 4个512MB,1个vCPU
  • 2个512MB,1个vCPU,容错(消耗的内存翻倍)

这应该加起来27GB的RAM。 根据“ 资源pipe理指南” (对于一个2 GB,1个vCPU虚拟机,假设38 MB开销,512 MB 1个vCPU虚拟机需要23 MB),开销约为28 MB。

当我查看各个主机时,正在使用的内存似乎与此相符。 在“摘要”选项卡上,对于“内存使用情况”,一台主机显示14240.00 MB,另一台显示14897.00 MB,总计大约28.5 GB。

但是,vSphere Client中群集的“资源分配”选项卡显示以下内容:

  • 总容量:89705 MB
  • 预留容量:47210 MB
  • 可用容量:42495 MB

撇开两台主机之间的48 GB内存是98304 MB而不是89705这个事实,为什么预留容量如此之高呢? 单个主机声称使用的内存(28 GB)与群集声称使用的内存(46 GB)之间差不多有20 GB。 而且,这使得我无法添加新的虚拟机,因为HA集群需要能够容忍一台主机的故障,并且软件认为我正在满负荷运行。

我所有的虚拟机都configuration了没有内存限制,没有内存预留,除了两个容错虚拟机,其所有的RAM都保留。

这是与vSphere 5.1标准许可证。

经过与VMware的支持进行了一些(长时间的)交谈之后,我得出了以下的理解:

“预留容量”中的数字不是集群VM的内存configurationfunction。 这是以下几个因素的总和:在VM上声明的任何内存预留 ,从HA准入策略计算的值,以及用于内存pipe理开销的额外数量。 HA准入控制值直接来自准入控制策略; 在我的情况下,因为我已经设置为容忍单个主机的故障,所以我的一台主机上的RAM总量被添加到集群的保留容​​量。

除了其他限制之外,似乎HA许可控制将不允许保留容量超过单个主机中的RAM。 (不pipe是这样,还是它不会允许可用容量降到单个主机上的RAM之下;我还不清楚哪一个是真实的,因为它们在我的双主机集群中是一样的。)这最终导致实际上任何数量的内存预留都与双主机群集中的HA准入策略的自然设置不兼容。 由于容错强制内存保留,这使得它类似的不兼容。 有人告诉我说,如果集群中有更多的主机,那么保留的容量就会被“分散”出来,而且有一定程度的内存保留是可能的。

对我来说,最终的结果是,我不得不改变我的HA准入政策,以保留一定比例的可用资源(而不是“一个主机的价值”),并计算出这个百分比来排除使用容错所需的任何内存预留。

在我看来,这是您将HA群集接纳控制策略设置为“保留的群集资源的百分比”并给予50%预留的function。 所以这是按预期工作。