ESXI 中只有 4.7GB RAM 可用于 8GB RAM 中的虚拟机。为什么这么少?

ESXI 中只有 4.7GB RAM 可用于 8GB RAM 中的虚拟机。为什么这么少?

我有一台 ESXI 6.0,内存为 8GB。出于某种原因,我只能将 4.7GB 用于虚拟机。我尝试使用,esxtop但没有看到任何占用大量内存的东西。以下是来自 vsphere 的屏幕截图。有人能帮我了解内存都用到哪里了吗?正如您在下面看到的,ESXI 总共有 8104 MB 的内存可用,但不知何故我只有 4.7GB 的内存可用于虚拟机。当我关闭所有虚拟机时,esxi 使用了 1.4GB,这没问题,但我仍然只有 4.7GB 可用于虚拟机。剩余的内存都用到哪里了,我如何才能让更多内存供虚拟机使用?

概括

物理内存

有效内存

消耗的内存

答案1

来自 VMware 知识库文章 ESXi“摘要”选项卡和“资源分配”选项卡显示的内存和 CPU 值不同

ESXi 或集群资源分配选项卡显示三个值:

  • 总容量 – 保证可供资源池(ESXi 主机)使用的资源量。
  • 预留容量 – 用于满足资源池所有后代预留需求的资源总量。这包括子资源池和虚拟机。
  • 可用容量 – 可供子虚拟机预留的资源总量。

资源分配选项卡中的值是已经减去系统资源池的资源。

您的价值观是:

Total Capacity: 4708 MB = amount guaranteed to always be available
Reserved Capacity: 2698 MB = amount used now
Available Capacity: 2010 MB = amount still available

VMware vSphere 6.0 文档在部分中说 创建资源池

预订

指定此资源池的保证 CPU 或内存分配。默认为 0。

从父级(主机或资源池)的未预留资源中减去非零预留。无论虚拟机是否与资源池关联,这些资源都被视为预留。

可扩展预订

选中复选框时(默认),在准入控制期间会考虑可扩展预留。

如果启动此资源池中的虚拟机,并且虚拟机的组合预留量大于该资源池的预留量,则该资源池可以使用来自其父级或祖先的资源。

值得注意的是资源池默认创建,可根据需要扩展。

文章管理对象-ResourcePool描述了根资源池,它占据了整个计算机并且是任何其他池的祖先:

资源池配置了一组 CPU(以 MHz 为单位)和内存(以 MB 为单位)资源。这些资源以绝对值指定,包括资源预留和资源限制以及份额设置。在资源争用期间使用份额,以确保平稳降级。

对于根资源池,预留和限制的值由系统设置,不可配置。预留和限制设置为相同的值,表示系统可用于运行虚拟机的资源总量。这是通过父计算资源中当前可用主机集提供的聚合 CPU 和内存资源减去虚拟化层的开销来计算的。

5.1 手册列出并注册虚拟机说:

默认数据中心是ha-数据中心默认资源池是资源

根据您的第一张截图,资源定义为具有 2 x 2.194 GHZ 的 CPU 容量和 8103.84 MB 的内存容量。因此,ESXi 知道您的配置并占用了全部内存。

虽然您没有创建任何资源池,但是已经为您创建了一个默认资源池,其保留值为 4708 MB,这是立即从主机内存中减去的数量。

由于您的情况没有超过 4708 MB 的最小值,因此 ESXi 未从根池进行任何额外分配。这将在需要时进行。

答案2

Resource allocation选项卡描述了最低限度在高负载情况下,主机能够提供的保证资源。这并不意味着它不能提供全部的 RAM,这只代表最低限度如果您达到极端资源消耗的阈值。

在我们的案例中,我们的主机拥有262115.5 MB的 RAM,在重负载情况下,我们的最低保证 RAM 量为251577 MB。 RAM 越大,最低保证资源量就越大。

如果你想要一个官方来源,这里有一个VMware 文档对此进行了解释适用于 vSphere 4.0,但同样适用于当前版本。

相关内容